пʼятниця, 19 листопада 2021 р.

22.11.2021 - 28.11.2021 Алгоритми розгалуження з числовими типами даних

 

 

 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 = mm, поділити на:

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 = mmm, поділити на:

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 = mmmm, поділити на:

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 = mmmmm, поділити на:

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))

 

 

Результати виконаної практичної частини надіслати на електронну адресу: vinnser@gmail.com

 

Немає коментарів:

Дописати коментар