22.11.2021-28.11.2021
Тема: Обробка табличних величин мовою Python3
Практична частина
22.11.2021 - 28.11.2021
Тема: Алгоритми
розгалуження з числовими типами даних мовою Python3
Теоретична частина
Як
аналізувати властивості степенів?
Таблиця лишків за модулем 10 та 100 для натуральних
степенів mn
Отже, можливі тільки такі степеневі двоцифрові лишки для степенів цифр: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 12,16, 21,23,
24, 25, 27, 28, 29, 32, 36, 41, 43, 44, 47, 48, 49, 52,56, 61, 63, 64, 67, 68,
69, 72,76, 81,83, 84, 88, 89, 92, 96.
Основа степеня |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
Довжина двоцифрового періоду останніх цифр по модулю 100 |
20(поч. з 04) |
20 |
10 |
1 |
6 |
4 |
20 |
10 |
|
Довжина одноцифрового періоду останньої цифри |
4 |
4 |
2 |
1 |
1 |
4 |
4 |
2 |
|
Критерій парності двох останніх цифр лишку по модулю 100 |
k & 2n |
2k & 2n+1 |
k & 2n |
2k & 2n+1 |
2k+1&2n |
2k & 2n+1 |
k & 2n |
2k & 2n+1 |
|
m1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
m2 |
4 |
9 |
16 |
25 |
36 |
49 |
64 |
81 |
|
m3 |
8 |
27 |
64 |
25 |
16 |
43 |
12 |
29 |
|
m4 |
16 |
81 |
56 |
25 |
96 |
1 |
96 |
61 |
|
m5 |
32 |
43 |
24 |
25 |
76 |
7 |
68 |
49 |
|
m6 |
64 |
29 |
96 |
25 |
56 |
49 |
44 |
41 |
|
m7 |
28 |
87 |
84 |
25 |
36 |
43 |
52 |
69 |
|
m8 |
56 |
61 |
36 |
25 |
16 |
1 |
16 |
21 |
|
m9 |
12 |
83 |
44 |
25 |
96 |
7 |
28 |
89 |
|
m10 |
24 |
49 |
76 |
25 |
76 |
49 |
24 |
1 |
|
m11 |
48 |
47 |
4 |
25 |
56 |
43 |
92 |
9 |
|
m12 |
96 |
41 |
16 |
25 |
36 |
1 |
36 |
81 |
|
m13 |
92 |
23 |
64 |
25 |
16 |
7 |
88 |
29 |
|
m14 |
84 |
69 |
56 |
25 |
96 |
49 |
4 |
61 |
|
m15 |
68 |
7 |
24 |
25 |
76 |
43 |
32 |
49 |
|
m16 |
36 |
21 |
96 |
25 |
56 |
1 |
56 |
41 |
|
m17 |
72 |
63 |
84 |
25 |
36 |
7 |
48 |
69 |
|
m18 |
44 |
89 |
36 |
25 |
16 |
49 |
84 |
21 |
|
m19 |
88 |
67 |
44 |
25 |
96 |
43 |
72 |
89 |
|
m20 |
76 |
1 |
76 |
25 |
76 |
1 |
76 |
1 |
|
m21 |
52 |
3 |
4 |
25 |
56 |
7 |
8 |
9 |
ТЕОРЕМИ ПРО ОСТАЧІ ПРИ ДІЛЕННІ СТЕПЕНІВ НА НАТУРАЛЬНІ
ЧИСЛА.
Варто мати на увазі,
що квадрати цілих чисел при діленні на 3 або
4 можуть давати остачі лише 0 та 1, куби при діленні на 9 - лише 0, 1 та 8. (Перевірте це самостійно). Подібні
факти в поєднанні з вдалим вибором числа, остачі при діленні на яке ми
розглядаємо, часто допомагають розв'язуванню. З допомогою такого вдалого вибору
можна доводити, що число не є простим, можна розв'язувати рівняння в цілих
числах.
Квадратні лишки
Остачі при діленні квадратів на
натуральні числа.
Якщо
квадрат натурального числа, тобто, m2 = m∙m, поділити на:
2, то
отримаємо остачі 0, 1;
3, то
отримаємо остачі 0, 1
4, то
отримаємо остачі 0, 1;
5, то
отримаємо остачі 0, 1, 4;
6, то
отримаємо остачі 0, 1, 3, 4;
7, то
отримаємо остачі 0, 1, 2, 4;
8, то
отримаємо остачі 0, 1, 4;
9, то
отримаємо остачі 0, 1, 4, 7;
10, то
отримаємо остачі 0, 1, 4, 5, 6, 9;
11, то
отримаємо остачі 0, 1, 3, 4, 5, 9;
12, то
отримаємо остачі 0, 1, 4, 9;
13, то
отримаємо остачі 0, 1, 3, 4, 9, 10, 12;
14, то
отримаємо остачі 0, 1, 2, 4, 8, 9;
15, то
отримаємо остачі 0, 1,4, 6, 9, 10;
16, то
отримаємо остачі 0, 1, 4, 9;
17, то
отримаємо остачі 0, 1, 4, 8, 9,15.
Кубічні лишки
Остачі при діленні кубів на
натуральні числа.
Якщо куб
натурального числа, тобто, m3 = m∙m∙m, поділити на:
2, то
отримаємо остачі 0, 1;
3, то
отримаємо остачі 0, 1, 2;
4, то
отримаємо остачі 0, 1, 3;
5, то отримаємо
остачі 0, 1, 2, 3, 4;
6, то
отримаємо остачі 0, 1, 2, 3, 4, 5;
7, то
отримаємо остачі 0, 1, 6;
8, то
отримаємо остачі 0, 1, 3, 5, 7;
9, то
отримаємо остачі 0, 1, 8;
10, то отримаємо остачі 0, 1, 2, 3,
4, 5; 6; 7; 8; 9
Таблиця остач при діленні кубів на
цифри
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
23 |
0 |
0 |
2 |
0 |
3 |
2 |
1 |
0 |
8 |
33 |
0 |
1 |
0 |
3 |
2 |
3 |
6 |
3 |
0 |
43 |
0 |
0 |
1 |
0 |
4 |
4 |
1 |
0 |
1 |
53 |
0 |
1 |
2 |
1 |
0 |
5 |
6 |
5 |
8 |
63 |
0 |
0 |
0 |
0 |
1 |
0 |
6 |
0 |
0 |
73 |
0 |
1 |
1 |
3 |
3 |
1 |
0 |
7 |
1 |
83 |
0 |
0 |
2 |
0 |
2 |
2 |
1 |
0 |
8 |
93 |
0 |
1 |
0 |
1 |
0 |
3 |
1 |
1 |
0 |
Четвіркові лишки
Остачі при діленні четвертих
степенів на натуральні числа.
Якщо четверту
степінь натурального числа, тобто, m4 = m∙m∙m∙m, поділити на:
2, то
отримаємо остачі 0, 1;
3, то
отримаємо остачі 0, 1
4, то
отримаємо остачі 0, 1;
5, то
отримаємо остачі 0, 1;
6, то
отримаємо остачі 0, 1, 3, 4;
7, то
отримаємо остачі 0, 1, 2, 4;
8, то
отримаємо остачі 0, 1;
9, то
отримаємо остачі 0, 1, 4, 7;
10, то
отримаємо остачі 0, 1, 5, 6;
П’ятіркові лишки
Остачі при діленні п’ятих
степенів на натуральні числа.
Якщо п’яту
степінь натурального числа, тобто, m5 = m∙m∙m∙m∙m,
поділити на:
2, то
отримаємо остачі 0, 1;
3, то
отримаємо остачі 0, 1, 2;
4, то
отримаємо остачі 0, 1, 3;
5, то
отримаємо остачі 0, 1, 2, 3, 4;
6, то
отримаємо остачі 0, 1, 2, 3, 4, 5;
7, то
отримаємо остачі 0, 1, 2, 3, 4, 5, 6;
8, то
отримаємо остачі 0, 1, 3, 5, 7;
9, то
отримаємо остачі 0, 1, 2, 4, 5, 7, 8;
10, то отримаємо остачі 0, 1, 2, 3,
4, 5; 6; 7; 8; 9.
Практична частина.
Завдання 1. Створити, реалізувати,
протестувати алгоритм мовою
програмування Python3 в середовищі програмування Thonny
для знаходження останньої цифри у числа
вигляду 4k , k > 10000.
Математична модель завдання 1: 1)41 має останню цифру 4. 2)42 має останню цифру 6. 3)43 має останню цифру 4. 4) 44 має останню цифру 6. Отже, якщо
степінь k =2m - парне число, то 4k має останню цифру 6. Якщо степінь
k=2m-1 - непарне число, то 4k
має останню
цифру 4.
Реалізація.
import random;
a=random.randint(44,444444444)
print('Алгоритм 1 пошуку останньої цифри у числа вигляду 4^a без його обчислення')
if a%2==0:
print(' 6 - це остання цифра у
числа вигляду 4^',a)
elif a%2==1:
print(' 4 - це остання цифра у
числа вигляду 4^',a)
Завдання 2. Створити, реалізувати,
протестувати алгоритм мовою
програмування Python3 в середовищі програмування Thonny
для знаходження останньої цифри у числа
вигляду 9k , де k >
10000.
Математична модель завдання 2: 1)91 має
останню цифру 9. 2)92 має останню цифру 1. 3)93 має останню цифру 9. 4) 94 має останню цифру 1.
Отже, якщо степінь k=2m - парне число, то 9k має останню цифру 1. Якщо
степінь k=2m-1
- непарне
число, то 9k має останню цифру 9.
Реалізація.
import random; b=random.randint(99,99999999)
print('Алгоритм 2 пошуку останньої цифри у числа вигляду 9^b без його обчислення')
if b%2==0:
print(' 1 - це остання цифра у
числа вигляду 9^',b)
elif b%2==1:
print(' 9 - це остання цифра у
числа вигляду 9^',b)
Завдання 3. Створити, реалізувати, протестувати
алгоритм мовою програмування Python3 в середовищі програмування
Thonny для знаходження останньої цифри
у числа вигляду 3k , де k >
10000.
Математична модель завдання 3: 1)31 має останню цифру 3. 2)32 має останню цифру 9. 3)33 має останню цифру 7. 4) 34 має останню цифру 1.
Продовжуючи далі, помічаємо, що виконується закономірність повторення останніх цифр,
тобто циклічність або періодичність
через кожні чотири кроки. А саме, якщо
степінь k=4m+1
- непарне
число, то 3k має
останню цифру 3. Якщо степінь
k=4m+2 - парне число, то 3k має
останню цифру 9. Якщо степінь k=4m+3 - непарне
число, то 3k має
останню цифру 7. Якщо степінь
k=4m+0- парне
число, то 3k має
останню цифру 1.
Реалізація.
import random; n=random.randint(33,33333333)
print('Алгоритм 3 пошуку останньої цифри у числа вигляду 3^n без його обчислення')
if n%4==0:
print(' 1 - це остання цифра у
числа вигляду 3^',n)
elif n%4==1:
print(' 3 - це остання цифра у
числа вигляду 3^',n)
elif n%4==2:
print(' 9 - це остання цифра у
числа вигляду 3^',n)
elif n%4==3:
print(' 7 - це остання цифра у
числа вигляду 3^',n)
Завдання 4. Створити, реалізувати,
протестувати алгоритм мовою
програмування Python3 в середовищі програмування Thonny
для знаходження останньої цифри у числа
вигляду 7k , де k >
10000.
Математична модель завдання 4: 1)71 має останню
цифру 7. 2)72 має останню цифру 9. 3)73 має останню цифру 3. 4) 74 має останню цифру 1.
Продовжуючи далі, помічаємо, що виконується закономірність повторення останніх цифр,
тобто циклічність або періодичність
через кожні чотири кроки. А саме, якщо
степінь k=4m+1
- непарне
число, то 7k має
останню цифру 7. Якщо степінь
k=4m+2 - парне число, то 7k має
останню цифру 9. Якщо
степінь k=4m+3 - непарне число, то 7k має
останню цифру 3. Якщо степінь
k=4m+0- парне
число, то 7k має
останню цифру 1.
Реалізація.
import random; k=random.randint(777,77777777)
print('Алгоритм 4 пошуку останньої цифри у
числа вигляду 7^k без його обчислення')
if k%4==0:
print(' 1 - це остання цифра у числа вигляду 7^',k)
elif k%4==1:
print(' 7 - це остання цифра у числа вигляду 7^',k)
elif k%4==2:
print(' 9 - це остання цифра у числа вигляду 7^',k)
elif k%4==3:
print(' 3 - це остання цифра у числа вигляду 7^',k)
Завдання 5. Створити, реалізувати, протестувати
алгоритм мовою програмування Python3 в середовищі програмування
Thonny для знаходження останньої цифри
у числа вигляду 2k , де k >
10000.
Математична модель завдання 5: 1)21 має останню цифру 2. 2)22 має останню цифру 4. 3)23 має останню цифру 8. 4) 24 має останню цифру 6.
Продовжуючи далі, помічаємо, що виконується закономірність повторення останніх цифр,
тобто циклічність або періодичність
через кожні чотири кроки. А саме, якщо
степінь k=4m+1
- непарне
число, то 2k має останню цифру 2. Якщо
степінь k=4m+2 - парне число, то 2k має останню цифру 4. Якщо
степінь k=4m+3 - непарне число, то 2k має останню цифру 8. Якщо
степінь k=4m+0- парне число, то 2k має останню цифру 6.
Реалізація.
import random; m=random.randint(222222,222222222)
print('Алгоритм 5 пошуку останньої цифри у числа вигляду 2^m без його обчислення')
if m%4==0:
print(' 1 - це остання цифра у
числа вигляду 2^',m)
elif m%4==1:
print(' 2 - це остання цифра у
числа вигляду 2^',m)
elif m%4==2:
print(' 4 - це остання цифра у
числа вигляду 2^',m)
elif m%4==3:
print(' 6 - це остання цифра у
числа вигляду 2^',m)
Завдання 6. Створити, реалізувати, протестувати
алгоритм мовою програмування Python3 в середовищі програмування
Thonny для знаходження останньої цифри
у числа вигляду 8k , де k >
10000.
Математична модель завдання 6: 1)81 має останню цифру 8. 2)82 має останню цифру 4. 3)83 має останню цифру 2. 4) 84 має останню цифру 6.
Продовжуючи далі, помічаємо, що виконується закономірність повторення останніх цифр,
тобто циклічність або періодичність
через кожні чотири кроки. А саме, якщо
степінь k=4m+1
- непарне
число, то 8k має останню цифру 8. Якщо
степінь k=4m+2 - парне число, то 8k має останню цифру 4. Якщо
степінь k=4m+3 - непарне число, то 8k має останню цифру 2. Якщо
степінь k=4m+0- парне число, то 8k має останню цифру 6.
Реалізація.
import random; p=random.randint(888,8888888)
print('Алгоритм 6 пошуку останньої цифри у числа вигляду 8^p без його обчислення')
if p%4==0:
print(' 6 - це остання цифра у
числа вигляду 8^',p)
elif p%4==1:
print(' 8 - це остання цифра у
числа вигляду 8^',p)
elif p%4==2:
print(' 4 - це остання цифра у
числа вигляду 8^',p)
elif p%4==3:
print(' 2 - це остання цифра у
числа вигляду 8^',p)
Завдання 7. Створити, реалізувати,
протестувати алгоритм мовою
програмування Python3 в середовищі програмування Thonny
для знаходження розкладу числа 170 на суму таких двох додатних цілих, що одне з
них ділиться на 11, а друге на 13 націло.
Математична модель
завдання 7: Маємо рівняння з двома невідомими:
170=11х+13y, де
х, у - натуральні числа.
Реалізація.
print('Алгоритм 7 пошуку розкладу 170 на два доданки, які мають властивості
подільності на 11 та 13')
print('Розв*язки
рівняння з двома невідомими: 170=11х+13y, де х, у - натуральні числа.')
for x in
range(1,15):
for y in range(1,13):
if 11*x+13*y==170:
print('x= ',x)
print('y= ',y)
print('11*',x, '=',11*x,'- це
перший доданок, що ділиться на 11 ')
print('13*',y, '=',13*y,'- це
другий доданок, що ділиться на 13 ')
print(13*y,'+',11*x, '=',11*x+13*y)
Алгоритми
оптимізації з фінансовими даними на Python3
Завдання 7. На трасі 800 метрів треба прокласти газові
труби. На складі є труби довжиною 11 метрів та 13 метрів. Як найекономніше використати труби, якщо ціна 11-метровки=8000 гривень, а ціна 13-метровки 10000 гривень? Створити,
реалізувати, протестувати алгоритм мовою
програмування Python3 в
середовищі програмування Thonny для знаходження розкладу числа 800 на суму таких двох додатних цілих,
що одне з них ділиться на 11, а друге на
13 націло.
Математична модель
завдання 1: Маємо рівняння з двома невідомими: 800=11х+13y, де х, у - натуральні числа.
Реалізація.
print('Алгоритм 8 пошуку
розкладу 800 на два доданки, які мають властивості подільності на 11 та 13')
m=0; n=0; Z=['None']*6
print('Алгоритм 8
пошуку найекономнішого розкладу 800 на два доданки')
print('Розвязки рівняння з двома невідомими: 800=11х+13y,
де х, у - натуральні числа.')
print('Ціна труби: 11-метровки = 8000 грн, 13-метровки
=10000 грн.')
for x in range(1,72):
for y in
range(1,61):
if
11*x+13*y==800:
Z[m]=8*x+10*y
print('Z[',m,']= ',Z[m], 'тисяч гривень')
m=m+1; print('Кількість пар: m= ',m); print('x= ',x); print('y= ',y)
print('11*',x, '=',11*x,'- це перший доданок, що ділиться на 11 ')
print('13*',y, '=',13*y,'- це другий доданок, що ділиться на 13 ')
print(13*y,'+',11*x, '=',11*x+13*y)
print('******************************')
n=min(Z);
print('ЦІНАmin= ',n,' тисяч гривень')
n=max(Z);
print('ЦІНАmax= ',n,' тисяч гривень')
Завдання 9. На трасі 2100 метрів треба прокласти
газові труби. На складі є труби довжиною 17 метрів та 23 метрів. Як найекономніше
використати труби, якщо ціна 17-метровки=18000 гривень, а ціна 23-метровки 25000 гривень? Створити, реалізувати,
протестувати алгоритм мовою
програмування Python3 в середовищі програмування Thonny для
знаходження розкладу числа 2100 на суму таких двох додатних
цілих, що одне з них ділиться на 17, а
друге на 23 націло.
Математична модель завдання 2: Маємо
рівняння з двома невідомими: 2100=17х+23y, де х, у - натуральні
числа.
Реалізація.
print('Алгоритм 9 пошуку
розкладу 2100 на два доданки, які мають властивості подільності на 17 та 23')
m=0; n=0; Z=['None']*5
print('Алгоритм 9 пошуку розкладу 2100 на два доданки')
print('Розвязки рівняння з двома невідомими:
2100=17х+23y, де х, у - натуральні числа.')
print('Ціна труби: 17-метровки = 18000 грн,
23-метровки =25000 грн.')
for x in range(1,123):
for y
in range(1,91):
if 17*x+23*y==2100:
Z[m]=17*x+25*y
print('Z[',m,']= ',Z[m], 'тисяч гривень')
m=m+1; print('Кількість пар: m=
',m); print('x= ',x); print('y= ',y)
print('17*',x, '=',17*x,'- це перший доданок, що ділиться на 17 ')
print('23*',y, '=',23*y,'- це другий доданок, що ділиться на 23 ')
print(23*y,'+',17*x, '=',17*x+23*y,' метрів ')
print('******************************')
n=min(Z);
print('ЦІНАmin= ',n,' тисяч гривень')
n=max(Z);
print('ЦІНАmax= ',n,' тисяч гривень')
Завдання 10. Автобаза може послати 30 машин для вивозу цукрових буряків на три
приймальні пункти. На базі є дво-, три-, п’ятитонні машини. Скільки треба машин
кожної тоннажності, щоб за кожну ходку вивозити 100 тон буряків? Як найекономніше використати машини, якщо ціна 2-тоннажки=18000 гривень, а ціна 3-тоннажки = 25000 гривень, ціна 5-тоннажки=30000? Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в
середовищі програмування Thonny для знаходження розкладу
числа 100 на суму таких трьох додатних цілих, що одне з них ділиться на 2, а друге на 3, третє - на 5 націло.
Математична модель завдання 3: Маємо
рівняння з трьома невідомими: 100=2х+3y+5z, де х, у, z -
натуральні числа, такі, що 0<x+y+z<31.
Реалізація.
print('Алгоритм 10’)
m=0; n=0;
Z=['None']*9
print('Алгоритм 10 пошуку розкладу 100 на три доданки')
print('Розвязки
рівняння з двома невідомими: 100=2х+3y+5z, де х, у, z - натуральні числа.')
print('Ціна труби:
2-тоннажки = 18000 грн, 3-тоннажки =25000 грн. 5-тоннажки =30000 грн.')
for x in range(0,
31):
for y in range(0,31):
for z in range(0,31):
if
(2*x+3*y+5*z==100)and(x+y+z==30):
Z[m]=18*x+25*y+30*z
print('Z[',m,']= ',Z[m], 'тисяч
гривень')
m=m+1
print('Кількість трійок: m=
',m)
print('x= ',x); print('y= ',y); print('z= ',z)
print('2*',x, '=',2*x,'- це
перший доданок, що ділиться на 2 ')
print('3*',y, '=',3*y,'- це
другий доданок, що ділиться на 3 ')
print('5*',z, '=',5*z,'- це
третій доданок, що ділиться на 5 ')
print(3*y,'+',2*x,
'+',5*z,'=',2*x+3*y+5*z,'тонн')
print('******************************')
n=min(Z); print('ЦІНАmin= ',n,' тисяч гривень')
n=max(Z); print('ЦІНАmax= ',n,' тисяч гривень')
Завдання11. 26 банкірів витратили 88 млн.
гривень інвестицій. При чому кожен державний банкір видавав по 6 млн.
гривень кредиту одній юридичній особі, кожен приватний банк видавав по 4 млн.
гривень кредиту одній
юридичній особі, кожний іноземний банк видадавав по 2 млн. гривень кредиту
одній юридичній особі. Скільки було банків кожного виду? Створити, реалізувати,
протестувати алгоритм мовою програмування
Python3 в середовищі програмування Thonny для знаходження розкладу
числа 88 на суму таких трьох додатних цілих, що одне з них ділиться на 6, а друге на 4, третє - на 2 націло.
Математична модель завдання 4: Маємо
рівняння з трьома невідомими: 88=6х+4y+2z, де х, у, z -
натуральні числа, такі, що 0<x+y+z<27.
Реалізація.
print('Алгоритм 11 пошуку розкладу 88 на
три доданки')
m=0; n=0; Z=['None']*10
print('Алгоритм 11 пошуку розкладу 88 на
три доданки')
print('Розвязки рівняння з двома невідомими:
100=6х+4y+2z, де х, у, z - натуральні числа.')
print('Ціна кредиту: 6-кускового = 40000 грн,
4-кускового =25000 грн. 2-куского =18000 грн.')
for x in range(0, 27):
for y
in range(0,27):
for z in range(0,27):
if (6*x+4*y+2*z==88)and(x+y+z==26):
Z[m]=40*x+25*y+18*z
print('Z[',m,']= ',Z[m],
'тисяч гривень')
m=m+1; print('Кількість трійок: m= ',m); print('x= ',x); print('y= ',y);
print('z= ',z)
print('6*',x, '=',6*x,'- це перший доданок, що ділиться на 6 ')
print('4*',y, '=',4*y,'- це другий доданок, що ділиться на 4 ')
print('2*',z, '=',2*z,'- це третій доданок, що ділиться на 2 ')
print(4*y,'+',6*x, '+',2*z,'=',6*x+4*y+2*z,'млн. гривень')
print('******************************')
n=min(Z);
print('ЦІНАmin= ',n,' тисяч гривень')
n=max(Z);
print('ЦІНАmax= ',n,' тисяч гривень')
Завдання12. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в
середовищі програмування Thonny для статистичного аналізу вибірки
випадкових цілих даних
Реалізація.
print('Алгоритм 12 для статистичного аналізу числових даних у списку')
print('****** Статистичний аналіз числових даних в масиві Z *****')
import random;
Y=[0.0000]*1; b=[0.0000]*14; Z=[0.0000]*1;
for i in range(13):
Z.append(int(round((200.0 - random.random() * 1000.0), 4)))
print('Вхідний масив випадкових дійсних чисел:
Z=', Z)
for i in range(0,14):
b[13-i]=Z[i]
print('Критерій парності елемента divmod(int(Z[',i,'])
=',divmod(int(Z[i]),2))
print('Перестановка у зворотному порядку елементів
для масиву Z має такий вигляд: b=',b)
b.sort(reverse = True)
print('Відсортований масив Z в порядку спадання
елементів це B1=b.sort(reverse=True)=',b);
b.sort()
print('Відсортований масив Z в порядку зростання елементів це B2=b.sort()=',b);
d=0; v=0; p=0; x1=-3; x2=3; sdod=0;svid=0;
for k in range(len(b)):
if
b[k]>0:
d=d+1; sdod=sdod+b[k]
if
b[k]<0:
v=v+1; svid=svid+b[k]
if
(b[k]>-30)and(b[k]<30):
p=p+1
print('Кількість додатних елементів масиву Z
d=', d,' та їхня сума ', sdod)
print('Кількість відємних елементів масиву Z
v=', v,' та їхня сума ', svid)
print('Діапазон розходження для сум додатних
елементів та сум відємних елементів в масиві Z', sdod-svid)
print('Кількість елементів масиву Z, що належать
проміжку [-30;30] p=',p);
gmin=100; fmax=0; etalon=5; u=1000; t=-9
for k in range(len(b)-1):
if
abs(b[k+1]-b[k])>fmax:
fmax=abs(b[k+1]-b[k]); rmax=b[k]
if
abs(b[k+1]-b[k])<gmin:
gmin=abs(b[k+1]-b[k]) ; rmin=b[k]
for k in range(len(b)):
if
abs(50-b[k])<u:
u=abs(50-b[k])
t=b[k]
print('Найбільша відстань між сусідніми
елементами масиву Z fmax=', fmax, 'одиниць для елемента rmax=',rmax)
print('Найменша відстань між сусідніми елементами масиву Z gmin=', gmin, ' одиниць для елемента
rmin=',rmin)
print('Найближчий до числа 50 елемент масиву Z
t=', t); m1=0
for k in range(1,len(b)-1):
if
abs(b[k+1]-b[k])+abs(b[k-1]-b[k])>m1:
m1=abs(b[k+1]-b[k])+abs(b[k-1]-b[k]); rm1=b[k]
print('Елемент-ізгой, що має найбільшу відстань
',m1,' від обох сусідів в масиві Z rm1=', rm1); m2=100
for k in range(1,len(b)-1):
if
abs(b[k+1]-b[k])+abs(b[k-1]-b[k])<m2:
m2=abs(b[k+1]-b[k])+abs(b[k-1]-b[k]); rm2=b[k]
print('Елемент-лідер, що має найменшу
відстань',m2,' від обох сусідів в масиві Z rm2=',rm2)
Завдання13. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі
програмування Thonny для
статистичного аналізу вибірки випадкових
дробових даних
Реалізація.
print('Алгоритм 13 для статистичного
аналізу дробових елементів у списку')
import random;
a=[0.0000]*1; b=[0.0000]*14; Z=[0.0000]*1;
for i in range(13):
a.append(round((13.0 - random.random() * 22.0), 4))
Z.append(round((200.0 - random.random() * 1000.0), 4))
print('Вхідний масив випадкових дійсних чисел: A=', a)
a.sort(); s=sum(a);
l=len(a); m=min(a); n=max(a); c=s/l
print('Сума чисел масиву A це s(A)=sum(a)=: ',s)
print('Найменший елемент масиву А це min(А)=m=', min(a))
print('Найбільший елемент масиву А це max(А)=n=', max(a))
print('Кількість чисел масиву A це k=len(a)=', len(a))
print('Довжина проміжку, в якому є елементів масиву
h(A)=max(a)-min(a)=', abs(n-m))
print('Відсортований масив A в порядку зростання
елементів: А=a.sort()=',a)
a.sort(reverse = True);
print('Відсортований масив A в порядку спадання
елементів: А=a.sort(reverse = True)=',a)
print('Середнє арфметичне чисел масиву A це c(A)=sum(a)/len(a)=с=', c)
print('max = {0}; min = {1}'.format(a[-1], a[0]))
print('Середина числового проміжку числових даних - це пiвсума
0.5*(max(A)+min(A))=: ', round(0.5*(a[-1]+a[0]), 2))
Завдання 14. Створити та реалізувати алгоритм, що використовує вбудовані функції для генерування послідовність дев’яти цілих чисел, які утворюють магічний квадрат 3х3 на сумах та добутках.
Реалізація.
print( 'Алгоритм 14.**
Генерування 1-ої послідовності чисел(арифметичної прогресії)**')
k=list(range(5, 54, 6))
print( '{K}=',k)
print( '***Властивості
арифметичної прогресії {K}****')
print( ' Члени послідовності
при діленні на', k[2]-k[1],' мають остачу', k[0])
print('summa {K}=', sum(k))
print( 'min{K}=', min(k),
'max{K}=', max(k))
print( 'Кількість членів
прогресії K:', len(k))
print( 'Послідовність
чисел {K} зростає з постійним кроком:',
k[2]-k[1])
print( 'Магічний квадрат 3x3
на сумах із чисел послідовності {N} з магічною сумою:', sum(k)//3)
print(k[1], k[6], k[5])
print(k[8], k[4], k[0])
print( k[3], k[2], k[7])
print( 'Магічний квадрат 3x3
на добутках із показників послідовності {N} з магічним добутком:',
2**k[1]*2**k[6]*2**k[5])
print( 2**k[1], 2**k[6],
2**k[5])
print( 2**k[8], 2**k[4],
2**k[0])
print( 2**k[3], 2**k[2],
2**k[7])
Завдання 15. Створити,
реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі
програмування Thonny для знаходження кількості
різних трицифрових чисел таких, щоб це число було кратне 10?
Математична модель. Якщо число ділиться 10 націло, тоді воно поділиться на 2 і на 5 націло.F
Реалізація.
print('Алгоритм 15 пошуку різних трицифрових чисел за
їхніми властивостями дільників')
import random
a=[s for s in range(100,1000,1) if
(s%2==0)and(s%5==0)];
print('Cписок трицифрових чисел, які кратні 10: a=',a)
print('Кількість чисел, що володіють такою
властивістю', len(a))
Протестувати цей алгоритм для:
1)двоцифрових чисел; 2) 4-цифрових чисел.
Завдання 16. Створити,
реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі
програмування Thonny для знаходження кількості
різних трицифрових чисел таких, щоб 3-цифрове
число можна записати у вигляді 6n+1 або у вигляді 7n+2 одночасно?
Математична модель. 3-цифрове число можна записати
у вигляді 6n+1 або у вигляді 7n+2 одночасно Реалізація.
print('Алгоритм 16 пошуку різних 3-цифрових чисел за
їхніми властивостями дільників')
import random
b=[p for p in range(100,1000,1) if
(p%6==1)and(p%7==2)];
print('Кількість чисел, що
володіють такою властивістю', len(b))
Протестувати цей алгоритм для:
1)двоцифрових чисел; 2) 4-цифрових чисел.
Завдання 17. Створити,
реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі
програмування Thonny для знаходження кількості
різних 4-цифрових чисел таких, щоб 4-цифрове число можна записати у вигляді 3n+1, 5n+1, 7n+1,
9n+1 одночасно. Відсортувати список цих
чисел у порядку спадання.
Математична модель. 3n+1, 5n+1, 7n+1, 9n+1
Реалізація.
print('Алгоритм 17 пошуку різних 2,3,4-цифрових чисел
за їхніми властивостями дільників')
import random
b=[p for p in range(10,10000,1) if
(p%3==1)and(p%5==1)and(p%7==1)and(p%9==1)];
print('Cписок 3-цифрових чисел, які мають можна
записати у вигляді 3n+1, 5n+1, 7n+1, 9n+1:
b=',b)
print('Кількість чисел, що володіють такою
властивістю', len(b))
print('Cума чисел, що володіють такою властивістю',
sum(b))
print('Maximum чисел, що володіють такою властивістю',
max(b))
print('Minimum чисел, що володіють такою властивістю',
min(b))
print('Середнє арифметичне чисел, що володіють такою
властивістю', sum(b)/len(b))
b.sort(reverse = True)
print('Cортування чисел в порядку спадання, що
володіють такою властивістю', b)
Протестувати цей алгоритм для: 1) 5-цифрових
чисел; 2) 3-цифрових чисел.
Завдання 18. Створити,
реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі
програмування Thonny для знаходження кількості
різних 4-цифрових чисел таких, щоб 4-цифрове число можна записати у вигляді 3n+1, 5n+1, 7n+1,
9n+1 одночасно. Це список b. Створити новий
список а із пар
сусідніх чисел, різниця між якими
ділиться націло на 3. Вивести ще список різниць між цими сусідніми числами.
Математична модель. 3n+1, 5n+1, 7n+1, 9n+1.
Реалізація.
print('Алгоритм 18 пошуку різних 4-цифрових чисел за
їхніми властивостями дільників')
import random
b=[p for p in range(10,10000,1) if
(p%3==1)and(p%5==1)and(p%7==1)and(p%9==1)];
print('Cписок 3-цифрових чисел, які мають можна
записати у вигляді 3n+1, 5n+1, 7n+1, 9n+1:
b=',b)
b.sort(reverse = True)
print('Cортування чисел у порядку спадання, що
володіють такою властивістю', b)
a=[]; h=[]
for k in range(len(b)-1):
if
(b[k]-b[k+1])%45==0:
print(b[k],'-',b[k+1],'=',b[k]-b[k+1])
a.append(b[k])
a.append(b[k+1])
h.append(b[k]-b[k+1])
print('a=',a)
print('h=',h)
Результати виконаної практичної
частини надіслати
на електронну адресу: vinnser@gmail.com
Немає коментарів:
Дописати коментар