13.12.2021-19.12.2021
Тема: Нелінійні алгоритми для списків із числовими типами даних мовою Python3
Теоретична частина
Двома основними правилами комбінаторики є:
Принцип суми. Якщо множина A містить m елементів, а множина B – n елементів, і ці множини не перетинаються, то A+B містить m+n елементів.
Принцип добутку. Якщо множина A містить m елементів, а множина B містить n елементів, то A*B містить m×n елементів, тобто пар (a;b).
Кількість елементів множини A будемо далі позначати |A|.
Ці правила мають також вигляд:
Принцип суми. Якщо об'єкт A можна вибрати m способами, а об'єкт B – n іншими способами, то вибір "або A, або B" можна здійснити m+n способами.
Принцип добутку. Якщо об'єкт A можна вибрати m способами і після кожного такого вибору об'єкт B може бути вибраним n способами, то вибір пари "A і B" в указаному порядку можна здійснити m×n способами.
Наведені правила очевидним чином узагальнюються на випадки довільних скінченних об'єднань множин, що попарно не перетинаються, та на скінченні декартові добутки.
При розв'язуванні математичних задач іноді використовують метод математичної індукції.
Принцип міркувань за індуктивним методом можна викласти в трьох пунктах.
Нехай існує послідовність тверджень Т1, Т2, Т3 , Т4, … причому:
1) Безпосередньою перевіркою впевнюються, що твердження Т1, Т2, Т3, Т4, …, Тк істинні;
2) Припускається, що деяке твердження Тк істинне, тоді на основі цього припущення доводиться, що наступне твердження Тк+1 також істинне.
3) Тоді стверджується, що всі твердження цієї послідовності істинні.
Такий спосіб міркувань називають методом математичної індукції. При цьому, доведення істинності твердження Т1, Т2, Т3, Т4, …, Тк, називають базою індукції, а доведення того, що з істинності твердження Тк випливає істинність твердження Тк+1, називають індукційним кроком.
Метод математичної індукції можна застосовувати не тільки для доведення, але і для означення послідовностей. Якщо ми означимо перший член послідовності, і, припустивши; що к-ий член вже означений, за допомогою нього означимо (к+1)-ий, то згідно принципу математичної індукції, вся послідовність буде означеною. Такий спосіб утворення послідовності називають рекурентним.
Існують й інші форми принципу математичної індукції. Іноді зручно починати індукцію не з доведення істинності Т1, а з доведення істинності деякого Тк. Принцип індукції еквівалентний такій аксіомі: в довільній непустій множині натуральних чисел є найменше.
Задачі Мудрої Сови:
1. Цеглина важить один кілограм плюс ще півцеглини. Скільки важить цеглина?
Відповідь: 2 кг. Адже півцеглини - це 1 кілограм, а півцеглини+півцеглини= ціла цеглина.
2. Цеглина важить 7 кілограм плюс ще півчверті цеглини. Скільки важить цеглина?
Відповідь: 8 кг. Адже півчверті цеглини - це 1/8 цеглини масою 1 кілограм,
бо 7/8 цеглини+1/8 цеглини= ціла цеглина=7+1=8 кг.
3. Цеглина важить півтора кілограми плюс ще третина цеглини. Скільки важить цеглина?
Відповідь: 2кг 250 г. Адже третина цеглини - це 1/3 цеглини масою 750 грам,
бо 2/3 цеглини+1/3 цеглини= ціла цеглина=1 кг 500 г+ 750 г= 2кг 250 г.
4. Три подруги одягли сукні різних кольорів. Одна − блакитну, друга − білу, і третя − зелену. Їхнє взуття було не таких самих кольорів, як сукні; тільки в Олі колір взуття був однаковий. Наталка була в зелених босоніжках. Сукня і взуття Валі не були білими. Хто і як був одягнений?
Розв’язання: Зрозуміло, що колір Валиного взуття блакитний. Отже, Оля була у білій сукні і білих босоніжках. Наталка одягла блакитну сукню, а Валя – зелену.
5. Скільки існує двоцифрових натуральних чисел, обидві цифри яких розташовані у зростаючому порядку?
Розв’язання: У другому десятку їх 8, у третьому десятку – 7, у четвертому десятку - 6, і так далі. 8+7+.....+ 2+1=36 двоцифрових чисел?
6. Довести, що серед 5 осіб принаймні двоє з них мають однакову кількість знайомих.
Розв’язання: Помістимо 5 осіб у „клітки” з номерами 0,1,2,3,4, де номер „клітки” відповідає кількості знайомих особи. Зауважимо, клітки з номерами 0 та 4 не можуть бути заповнені одночасно, бо якщо є особа, що не знайома ні з ким, тоді клітка під номером 4 порожня. Отже 5 осіб розміщені в чотирьох клітках. Принаймні дві особи знаходяться в одній клітці., тобто мають однакову кількість знайомих.
Розв'язування. 1+9=2+8=3+7=6+4=10. Середнє серед цих цифр, це 5.
Зрозуміло, що треба додати усі цифри 1+2+3+4+5+6+7+8+9= ? так, отримаємо 45.
Це число 45 розділити на 3 отримати 15. Отже сума по горизонталям, по вертикалям, по діагоналям рівна 15. Середнє серед цих цифр, це 5, повинна стояти в центральній клітинці.
Тоді в сусідній з нею клітинках повинні стояти непарні цифри: 1+9=3+7. В кутових клітинках повинні стояти парні числа: 6+4=2+8.
Знайшовши один такий набір можна отримати ще вісім таких квадратів за допомогою повороту навколо центральної клітинки.
4 | 9 | 2 |
3 | 5 | 7 |
8 | 1 | 6 |
| 9 |
|
3 | 5 | 7 |
| 1 |
|
Задача 8-а. Чи можна розміняти 25 грн за допомогою десяти купюр вартістю 1, 3 та 5 грн?
Розв'язання цієї задачі грунтується на простому спостереженні: сума парної кількості непарних чисел є парною: 1+3=4; 1+3+5+1=10. Узагальнення цього факту виглядає так: парність суми кількох чисел залежить лише від парності числа непарних доданків: якщо кількість непарних доданків є (не)парна, то і сума також є (не)парною. Отже, розміняти 25 грн не можна, бо десять довільних непарних чисел завжди дають парну суму, проте 25 - це непарне число. Відповідь: не можна!
Задача 8-б. У заданій неправильній рівності ХІ + І = Х не треба перекладати сірники, але як зробити цю правильної.
Розв’язання. Перевернути її знизу вгору. Отримаємо, Х=І+ІХ.
Задача 9. У заданій неправильній рівності Х- І = І треба перекласти сірник, але так, щоб зробити цю рівність правильної.
Розв’язання. Знак мінус поставити одиницею на початок. Отримаємо множення одиниць. І Х І = І.
Задача 10. У заданій буквеній рівності ПЛЯЖ+ШЛЯХ=ХВИЛЯ треба замінити букви цифрами, але так, щоб зробити цю рівність правильної і при цьому однаковим буквам відповідають рівні цифри, а різним буквам відповідають нерівні цифри.
Розв’язання. 3894+6895=10789, або 5687+4681=10368.
Задача 11. У заданій буквеній рівності БОРЩ+КОРЖ=ОБІД треба замінити букви цифрами, але так, щоб зробити цю рівність правильної і при цьому однаковим буквам відповідають рівні цифри, а різним буквам відповідають нерівні цифри.
Розв’язання. 3651+2657=6208, 2657+ 3651=6308.
Задача 12. У заданій буквеній рівності СИР+РИС=ЇЖА треба замінити букви цифрами, але так, щоб зробити цю рівність правильної і при цьому однаковим буквам відповідають рівні цифри, а різним буквам відповідають нерівні цифри.
Розв’язання. 273+372=645, або 293+392=685.
Задача 13. У заданій буквеній рівності РАК+БУГ=РІКА треба замінити букви цифрами, але так, щоб зробити цю рівність правильної і при цьому однаковим буквам відповідають рівні цифри, а різним буквам відповідають нерівні цифри.
Розв’язання. 152+973=1025.
14. Шість однакових діжок вміщують 28 відер води. Скільки відер води можуть вмістити таких 15 діжок?
Розв’язання. 28:2=14 відер вміщують три діжки(6:2=3).
14·5=70 відер води вміщують 15 діжок(3·5=15).
Відповідь: 70 діжок.
Практична частина
Завдання 1. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny для пошуку найбільшого спільного дільника масиву натуральних чисел.
Реалізація
print('Алгоритм 1 знаходження НСД для багатьох чисел')
import random
a1=[72+1152*n*random.randint(22, 222) for n in range(40, -38,-1) if n%10==2]
a=[144,1152,864,2016,66912,4704]; nsd=0; nsk=0; k=0; m=0;
def nsd(k,m):
if k==0:
nsd=m
return nsd
while m!=0:
if k>m:
k=k-m
else:
m=m-k
nsd=k
return nsd
x=nsd(a[0],a[1])
print(1,'-ий krok nsd=',x)
for n in range(2,6,1):
y=x
x=nsd(a[n],x)
print(n,'-ий krok nsd=',x)
print('Масив натуральних a=',a); print('НСД масиву чисел=',x)
Завдання 2. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny для поділу випадкового двоцифрового числа на дві частини у відношенні m:n, де m частин і n частин – це випадкові числа в межах від 3 до 23.
Реалізація
print('Алгоритм 2 знаходження поділу кожного числа масиву на частини у відношенні m:n')
import random
a1=[72+1152*n*random.randint(22, 222) for n in range(40, -38,-1) if n%10==2]
a=[144,1152,864,2016,66912,4704];
m=random.randint(3,23); n=24-m; ZAST1=0;ZAST2=0;
print('Масив натуральних a=',a)
for j in range(0,6,1):
ZAST1=a[j]*m/(m+n)
ZAST2=a[j]*n/(m+n)
print(n,'-ий krok Число a[',j,']=',a[j], 'поділено у відношенні',m,':',n,'отримаємо',ZAST1,':',ZAST2)
Завдання 3. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny для поділу випадкового трицифрового числа на три частини у відношенні k:m:n, де k, m і n - випадкові числа в межах від 2 до 10.
Реалізація
print('Алгоритм 3 знаходження поділу кожного числа масиву на частини у відношенні k:m:n')
import random
a1=[72+1152*n*random.randint(22, 222) for n in range(40, -38,-1) if n%10==2]
a2=[k for k in range(100, -28,-1) if k%2==0]
a=[144,1152,864,2016,66912,4704];
m=random.randint(2,10); k=random.randint(2,10); n=11-m-k; ZAST1=0; ZAST2=0; ZAST3=0;
print('Масив натуральних a=',a)
for j in range(0,6,1):
ZAST1=a[j]*k/(m+n+k)
ZAST2=a[j]*m/(m+n+k)
ZAST3=a[j]*n/(m+n+k)
print(j,'-ий krok Число a[',j,']=',a[j], 'поділено у відношенні',k,':',m,':',n)
print('отримаємо',round(ZAST1,6),':',round(ZAST2,6),':',round(ZAST3,6))
print('*************')
Завдання 4. Створити, реалізувати, протестувати алгоритм для пошуку випадкового двоцифрового числа х, яке було поділено на дві частини у відношенні m:n, де k і m - випадкові числа в межах від 3 до 20, якщо відомо: k частин становить а одиниць.
Реалізація
print('Алгоритм 4 знаходження пошуку кожного числа масиву за його частинами у відношенні k:m')
import random
a1=[72+1152*n*random.randint(22, 222) for n in range(40, -38,-1) if n%10==2]
a2=[k for k in range(100, -28,-1) if k%2==0]
a=[144,1152,864,2016,6912,4704];
m=random.randint(1,5); k=random.randint(2,5); ZAST1=0; ZAST2=0;
print('Масив натуральних чисел a=',a)
for j in range(0,6,1):
Zuslo=a[j]*(m+k)/(k)
ZAST2=a[j]*(m)/(k)
ZAST1=a[j]
print(j,'-ий krok . Число a[',j,']=',Zuslo, 'поділено у відношенні',k,':',m)
print('отримаємо',round(ZAST1,3),':',round(ZAST2,3))
print('*************')
Завдання 5. Створити, реалізувати, протестувати алгоритм для пошуку кількості спільних дільників для m та n, де n і m - випадкові числа/
Реалізація
print('Алгоритм 5 знаходження усіx спільних дільників для двох випадкових чисел')
import random; m=6912*random.randint(10,200); n=4704*random.randint(10,200);
m=6912; n=4704; a=[]
print('Число m=',m); print('Число n=',n)
max1=max(m,n)
for j in range(1,max1,1):
if m%j==0:
if n%j==0:
h=j
a.append(h)
print('Для двох чисел n=',n,'m=',m,' cпільний дільник k=',j)
print('Cпільні дільники у вигляді списку a=',a)
print('Кiлькість спільних дільників k=',len(a))
Завдання 6. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny для знаходження кількості трицифрових чисел, сума цифр яких дорівнює 14.
Математична модель завдання 5: abc=100*a+10*b+c i перевiрити умови a+b+c=14=5+9+0=4+1+9=3+2+9=2+3+9=…=7+6+1 та врахувати перестановки
Реалізація.
print('Алгоритм пошуку кількості 3-цифрових чисел з сумою цифр 14')
k=0
for a in range(1,10):
for b in range(0,10):
for c in range(0,10):
if a+b+c==14:
k=k+1
print('Шукане 3-цифрове число з сумою цифр 14 =', 100*a+10*b+c)
print('Kількість 3-цифрових чисел з сумою цифр 14 =', k)
Завдання 7. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що складаються з: 1)парних чисел.
Реалізація. Види сортування списків парних чисел
import random
print('Алгоритм 7 автоматичного створення парних чисел у масиві або списку')
print('***Простий спосіб, що є функцією списку list(range(k,m,n)) з лічильником')
Numer=list(range(-32, 32, 2))
print('Простенький список 3n-чисел in Numer=', Numer, type(Numer))
print('Перший спосіб, що використовує цикл з лічильником')
lst2n1=[m for m in range(-49, 102,2)] # циклічний генератор для парних чисел
print('Перший список парних чисел у порядку зростання lst2n1=', lst2n1, type(lst2n1))
print('Другий спосіб, що використовує цикл з лічильником і розгалуження')
lst2n2=[k for k in range(100, -28,-1) if k%2==0] # генератор для парних чисел
print('другий список парних чисел у порядку спадання lst2n2=', lst2n2, type(lst2n2))
print('Третій спосіб, що використовує генератор випадкових цілих чисел')
lst2n3=[2*n*random.randint(22, 222) for n in range(10, 0,-1) if n%2==0]
print('Третій список випадкових парних чисел lst2n3=', lst2n3, type(lst2n3))
lst2n3.reverse() # зміна порядку чисел на протилежний
print('Змінений список у протилежному порядку lst2n3=', lst2n3, type(lst2n3))
lst2n3.sort(reverse=True) # упорядкування чисел у порядку спадання
print('Змінений список у порядку спадання lst2n3=', lst2n3, type(lst2n3))
lst2n3.sort() # упорядкування чисел у порядку зростання
print('Змінений список чисел у порядку зростання lst2n3=', lst2n3, type(lst2n3))
Протестуйте даний алгоритм декілька разів для: 1) lst2n1=[m for m in range(2, 102,2)];
2) lst2n2=[k for k in range(100, -28,-1) if k%4==2]
3) lst2n3=[6*n*random.randint(22, 222) for n in range(30, -28,-1) if n%10==2]
Завдання 8. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що складаються з: 1)непарних чисел; 3) чисел кратних 3; 4) чисел, що є степенями 2; 5) чисел, що степенями 3. 6) чисел, що утворені формулою х(n)=5*n+9.
Реалізація. Статистичні характеристики списків непарних чисел
import random
print('Алгоритм 8 автоматичного створення непарних чисел у масиві або списку')
print('Перший спосіб, що використовує цикл з лічильником')
lst3n1=[2*m -1 for m in range(-8, 12,1)]
print('Перший список непарних чисел у порядку зростання lst3n1=', lst3n1, type(lst3n1))
print('Кількість усіх елементів у списку lst3n1=', len(lst3n1))
print('Кількість елемента "23" у списку lst3n1=', lst3n1.count(23))
print('Індекс елемента "21" у списку lst3n1=', lst3n1.index(21))
print('Cума усіх елементів у списку lst3n1=', sum(lst3n1))
print('Максимум усіх елементів у списку lst3n1=', max(lst3n1))
print('Мінімум усіх елементів у списку lst3n1=', min(lst3n1))
print('Cереднє арифметичне списку lst3n1=', sum(lst3n1)/len(lst3n1))
print('Другий спосіб, що використовує цикл з лічильником і розгалуження')
lst3n2=[2*k+1 for k in range(100, -28,-1) if k%2==0]
print('Другий список непарних чисел у порядку спадання lst3n2=', lst3n2, type(lst3n2))
print('Третій спосіб, що використовує цикл з лічильником і розгалуження')
lst3n3=[1+6*n*random.randint(22, 222) for n in range(40, -38,-1) if n%10==2]
print('Третій список чисел у довільному порядку lst3n3=', lst3n3, type(lst3n3))
lst3n3.remove(lst3n3[1]) # видаляємо із списку елемент lst3n[1]
print('Змінений список випадкових непарних чисел без 1-го елементу: lst3n3=', lst3n3, type(lst3n3))
lst3n3.sort(reverse=True)
print('Змінений список випадкових непарних чисел у порядку спадання lst3n3=', lst3n3, type(lst3n3))
lst3n3.sort()
print('Змінений список випадкових непарних чисел у порядку зростання lst3n3=', lst3n3, type(lst3n3))
Протестуйте даний алгоритм декілька разів для:
1) lst3n1=[4*m -1 for m in range(-8, 12,1)]
2) lst3n2=[6*k-1 for k in range(40, -28,-1) if k%3==0]
3 lst3n3=[1+2*n*random.randint(22, 222) for n in range(40, -38,-1) if n%10==7]
Завдання 9. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що складаються з: 1) чисел кратних 3.
Реалізація. Видалення та вставлення елементів у списки
import random
print('Алгоритм 9 автоматичного створення 3n-чисел у масиві або списку')
print('***Перший спосіб, що використовує функцію списку list(range(k,m,n)) з лічильником')
Numer=list(range(-33,10,3))
print('Простенький список 3n-чисел in Numer=', Numer, type(Numer))
print('***Другий спосіб, що використовує порожній список та циклом із лічильником приєднує елементи')
n=10; S1=[]
for i in range(10):
S1.append(random.randint(-50,50)) # приєднується випадкове число у список
S1[i]=3*(2*S1[i]-1) # елемент перетворюється в непарне 3n-число, що кратне 3
print('Початковий список непарних 3n-чисел S1=', S1, type(S1))
print('***Третій спосіб, що використовує у списку формулу та цикл з лічильником для неї')
lst4=[6*m for m in range(-9, 9,1)]
print('Новий список парних 3n-чисел у порядку зростання lst4=', lst4, type(lst4))
print('***Четвертий спосіб, що використовує цикл з лічильником і розгалуження')
lst3n2=[k for k in range(100, -28,-1) if k%3==0]
print('Четвертий список 3n-чисел у порядку спадання lst3n2=', lst3n2, type(lst3n2))
print('***П’ятий спосіб, що використовує генератор випадкових чисел)
lst3n3=[3+6*n*random.randint(22, 222) for n in range(40, -38,-1) if n%10==2]
print('Пятий список у довільному порядку lst3n3=', lst3n3, type(lst3n3))
lst3n3.remove(lst3n3[1]) # видаляємо із списку елемент lst3n[1]
print('Змінений список чисел без 1-го елементу: lst3n3=', lst3n3, type(lst3n3))
lst3n3.sort(reverse=True)
print('Змінений список чисел у порядку спадання lst3n3=', lst3n3, type(lst3n3))
lst3n3.sort()
print('Змінений список чисел у порядку зростання lst3n3=', lst3n3, type(lst3n3))
lst3n3[1:3]=[] #зрізу списку присвоюється порожній список, ці елементи видалені
print('Змінений список чисел після видалення елементів із списку', lst3n3)
lst3n3[1:3]=[3, 33, 333, 3333] #зрізу списку присвоюється список елементів
print('Змінений список чисел після вставлення елементів до списку', lst3n3)
Завдання 10. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що виконує сортування елементів списку у порядку спадання та у порядку зростання.
Реалізація . Сортування елементів у списку
import random
print(' Algorytm 10 сортування елементів у списках lst1 ')
print('***Оригінальний спосіб створення списку, що використовує генератор випадкових чисел')
lst1=[3+3*random.randint(5, 55) for n in range(20, -18,-1) if n%2==1]
print('Це список 3n-чисел у довільному порядку lst1=', lst1, type(lst1))
lst1.remove(lst1[1]) # видаляємо із списку елемент lst3n[1]
print('Змінений список чисел без 2-го елементу: lst1=', lst1, type(lst1))
lst1.sort(reverse=True) # сортування у порядку спадання lst1
print('Змінений список чисел у порядку спадання lst1=', lst1, type(lst1))
lst1.sort() # сортування у порядку зростання lst1
print('Змінений список чисел у порядку зростання lst1=', lst1, type(lst1))
Протестуйте даний алгоритм декілька разів, якщо:
1) lst1=[1+2*random.randint(7, 57) for n in range(40, -10,-2) if n%4==1]
2) lst1=[3+8*random.randint(1, 99) for n in range(90, 60,-3) if n%5==2]
3) lst1=[4+7*random.randint(90, 180) for n in range(1, 60,4) if n%6==3]
Завдання 11. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що виконує видалення та вставлення елементів у списку.
Реалізація. Видалення та вставлення елементів у списку
import random
print(' Algorytm 11 видалення та вставлення над елементами в списках lst ')
print('***Оригінальний спосіб створення списку, що використовує генератор випадкових чисел')
lst2=[1+2*n*random.randint(0, 10) for n in range(40, -38,-1) if n%10==2]
print('Початковий список чисел після видалення елементів із списку', lst2)
lst2[2:5]=[] #зрізу списку присвоюється порожній список, ці елементи видалені
print('Змінений список чисел після видалення двох елементів із списку', lst2)
lst2[0:3]=[0, 0, 0, 0] #зріз списку видаляється і присвоюється список нових 0-елементів
print('Змінений список чисел після видалення і вставлення чотирьох елементів до списку', lst2)
Протестуйте даний алгоритм декілька разів, якщо:
1) lst1=[1+2*random.randint(7, 57) for n in range(40, -20,-2) if n%11==0]
2) lst1=[3+8*random.randint(1, 99) for n in range(90, 60,-3) if n%3==2]
3) lst1=[4+7*random.randint(90, 180) for n in range(1, 60,4) if n%4==1]
Завдання 12. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що виконує вставлення елементів у списку без видалення між іншими елементами.
Реалізація. Вставлення елементів у списку без видалення
import random
print(' Algorytm 12 вставлення числових елементів у список lst1 ')
list1 = [1, 1, 1]
print(' початковий список list1=', list1)
list1.extend([0, 0, 0]) # вставлення елементів в кінець списку
print('Змінений список після вставлення чисел в кінець ', list1)
list2 = [2, 2, 2]
print(' початковий список list2=', list2)
list2.insert(1, 5) # вставлення елемента між існуючими елементами
print ('Змінений список після вставлення елемента 5 ', list2)
list3 = [3, 3, 3]
print(' початковий список list3=', list3)
list3.insert(1, [0,0,0]) # вставлення елемента між існуючими елементами
print ('Змінений список після вставлення елемента [0,0,0] =', list3)
for k in range(0,len(list1)): # цикл для вставлення елемента між існуючими елементами
list3.insert(k, list1[k]) # вставлення елемента між існуючими елементами
list3.extend([k-1, k, k+1]) # вставлення елемента в кінець списку
print ('Змінений список після циклу вставлення елемента =', list3)
print('Виявлення 8-го елемента у списку - це ', list3.pop(7))
Протестуйте даний алгоритм декілька разів, якщо:
1) list3 = list[range(0, 9,2]
2) list3 = [3+8*n for n in range(90, 60,-3) if n%3==2]
3) list3=[5+9*random.randint(90, 180) for n in range(1, 70,7) if n%2==1]
Завдання 13. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що виконує вставлення елементів у порожній список.
import random
print(' Algorytm 13 вставлення і видалення числових елементів у список lst1 ')
list2 = [4, 4, 4, 4]
print(' початковий список list2=', list2)
list2.extend([400, 4000, 40000]) # вставлення елементів в кінець списку
print('Змінений список після вставлення list2.extend([400, 4000, 40000])=', list2)
list1 = [2, 2, 2,2,2,2]
print(' Початковий список list1=', list1)
list1.insert(3,7000) # вставлення елемента між існуючими елементами
print ('Змінений список після вставлення list1.insert(3,7000)=', list1)
print('Показ елемента за його індексом list1.pop(3)=', list1.pop(3)) # показ індексу за відомим елементом списку
list3 = [2, 9, 8]
print('Початковий список list3=', list3)
list3.clear() # очищення списку чисел до порожнього
print ('Змінений список, тобто list3.clear() повне очищення списку : ', list3)
my_list = []
for k in range(0, 50, 8): #цикл для вставлення елемента у порожній список елемента
my_list.append(k) #вставлення елемента у порожній список елемента
print (' Наповнений список після циклу my_list=', my_list)
my_list.append(3) #вставлення праворуч у список елемента
print ('Змінений список вставлення елемента my_list=', my_list) # [1, 3]
my_list.remove(32) # видалення елемента 1 за першим індексом 0
print (' Змінений список після видалення елемента my_list.remove(32)=', my_list)
Протестуйте даний алгоритм декілька разів, якщо:
1) list1 = list[range(90, -9,-10]
2) list1 = [6-7*n for n in range(70, 40,-5) if n%4==2]
3) list1=[7+8*random.randint(95, 185) for n in range(42, 70,2) if n%3==0]
Результати виконання практичної частини надіслати не eлектронну адресу учителя:
vinnser@gmail.com
*****
Немає коментарів:
Дописати коментар