субота, 13 листопада 2021 р.

15.11.2021-21.11.2021 Алгоритми з числовими даними та їх властивостями

   

15.11.2021-21.11.2021

 

Тема: Алгоритми з числовими даними та їх властивостями

 

Теоретична частина

 

Створення математичної моделі до алгоритму з числовими даними

 Зразки задач комбінаторики

Задача 1. З Києва до Чернігова можна дістатися пароплавом, поїздом, автобусом, літаком; з Чернігова до Новгород-Сіверська – пароплавом і автобусом. Cкількома способами можна здійснити подорож за маршрутом Київ – Чернігів – Новгород-Сіверськ?

Розв’язання. Очевидно, число різних шляхів з Києва до Новгород-Сіверська дорівнює 4∙2 = 8, бо, обравши один з чотирьох можливих способів подорожі від Києва до Чернігова, маємо два можливих способи подорожування від Чернігова до Новгород-Сіверська.

Такі міркування, які були проведені при розв'язуванні задачі 1, доводять справедливість такого простого тверджен­ня, яке будемо називати основним правилом комбінаторики.

 

Якщо деякий вибір А можна здійснити m різними спосо­бами, а для кожного з цих способів деякий другий вибір В можна здійснити n способами, то вибір А і В (у вказаному порядку) можна здійснити mn способами.

 

Інакше кажучи, якщо певну дію (наприклад, вибір шля­ху від Києва до Чернігова) можна здійснити m різними спо­собами, після чого другу дію (вибір шляху від Чернігова до Новгород-Сіверська) можна здійснити n способами, то дві дії разом (вибір шляху від Києва до Чернігова, вибір шляху від Чернігова до Новгород-Сіверська) можна здійснити mn способами.

 

Задача 2. У розиграші першості країни з футбола бере участь 16 команд. Скількома способами можуть бути розподілені золота і срібна медалі?

Розв’язання. Золоту медаль може одержати одна з 16 команд. Після того, як визначено володаря золотої медалі, срібну медаль може мати одна з 15 команд. Отже, загальне число способів, якими може бути розподілена золота і срібна медалі, до­рівнює 16∙15 = 240.

 

Сформулюємо тепер основне правило комбінаторики (правило множення) в загальному вигляді.

Нехай треба виконати одну за одною k дій. Якщо першу дію можна виконати n1 способами, другу дію – n2 способами, третю дію – n3 способами і так до k-ї дії, яку можна вико­нати nk способами, то всі k дії разом можуть бути виконані n1∙ n2∙ n3∙…∙ nk-1 nk способами.

 

Задача 3. Скільки чотиризначних чисел можна склас­ти з цифр 0, 1,2, 3,4, 5, якщо:

а)         жодна цифра не повторюється більше одного разу;

б)        цифри можуть повторюватись;

в)         числа повинні бути непарними?
Розв'язання.  а) Першою цифрою числа може бути одна з 5 цифр 1, 2, 3, 4, 5 (0 не може бути, бо тоді число не чотиризначне); якщо перша цифра обрана, то друга може бути обрана 5 способами, третя – 4, четверта – 3. Згідно з правилом множення загальне число способів дорівнює 5∙5∙4∙3 = 300.

б)        Першою цифрою може бути одна з цифр 1, 2, 3, 4, 5 (5 можливостей), для кожної з наступних цифр маємо 6 мож­ливостей (0, 1,2,3, 4, 5). Отже, число шуканих чисел дорів­нює 5∙6∙6∙6=5∙ 63 = 1080.

в)         Першою цифрою може бути одна з цифр 1, 2, 3, 4, 5, а останньою – одна з цифр 1,3,5, (числа повинні бути не­парними). Отже, загальна кількість чисел дорівнює 5663 = 540.

 

Для того щоб добре засвоїти основне правило комбінато­рики, обов'язково треба розв'язати подані нижче вправи.

 

Вправи

4. Скільки існує п’ятицифрових чисел, для запису яких використовуються тільки цифри: а) 1, 2, 3, 4  б) 0, 1, 2, 3?( Кожна цифра може бути використана декілька разів). Відповідь: а)45 , б) 3∙44.

 

5.На вершину гори веде 7 доріг. Скількома способами турист може піднятись на гору і спуститись з неї? Дайте відповідь на те ж саме запи­тання, якщо підняття і спуск відбуваються різними шляхами. Відповідь: 49 способи, 42 способи.

 

6.В наряд можна послати трьох чоловік, одного із п’яти офіцерів, одного із семи сержантів і одного із 20 солдат. Скількома способами можна скласти наряд?

Відповідь: 20∙7∙5.

 

7. а)Скільки тризначних чисел можна утворити з цифр 1, 2, 3, 4, 5? Відповідь: 35.

В наряд можна послати двох чоловік, одного із трьох сержантів і одного із 6 солдат. б)Скількома способами можна скласти наряд? Відповідь: 3∙6 =18.

 

8.Скільки різних дільників має число 35∙54? Відповідь: (5+1)∙(4+1) = 30. Скласти таблицю всіх дільників.

 

9. Скільки тризначних чисел можна утворити з цифр 1, 2, 3, 4, 5, якщо кожну з цих цифр можна використовувати не більше одного разу? Відповідь: 5∙4∙3.

 

10. Скількома способами 7 осіб можуть розташуватись в чергу до каси? Відповідь: 7∙6∙8∙5∙4∙3∙2∙1.

 

11. В класі вивчають 14 предметів. В понеділок 7 уроків, причому всі уроки різні. Скількома способами можна скласти розклад на понеділок?

 

12. Скільки є п'ятизначних чисел, які діляться на 5?

 

13. П'ять хлопчиків і 5 дівчаток сідають в ряд на 10 розташованих поруч стільців, причому хлопчики сідають на місця з непарними номера­ми, а дівчатка – на місця з парними номерами. Скількома способами це можна  зробити? Відповідь: (5!)∙(5!)

 

14. Скільки різних слів можна утворити переставлянням букв у слові «математика»? Відповідь: 10!/(3!∙2!∙2!)

 

15.Автомобільні номери складаються з однієї, двох або трьох букв і чотирьох цифр. Знайти число таких номерів, використовуючи 33 букви алфавіту.

 

16. В селищі мешкає 1500 жителів. Довести, що принаймні два з них мають однакові  ініціали.

 

17. Скільки різних дільників має число 66∙74?

 

18. Скільки тризначних чисел можна утворити з цифр 1, 2, 3, 4, 5, якщо кожну з цих цифр можна використовувати не більше одного разу? Відповідь: 5∙4∙3.

Скількома способами 7 осіб можуть розташуватись в чергу до каси? Відповідь: 7∙6∙8∙5∙4∙3∙2∙1.

 

19. В класі вивчають 10 предметів. В понеділок 6 уроків, причому всі
уроки різні. Скількома способами можна скласти розклад на понеділок?

Скільки є п'ятизначних чисел, які діляться на 5? Відповідь: 10∙9∙8∙7∙6∙5= 151200

 

20. П'ять хлопчиків і 5 дівчаток сідають в ряд не 10 розташованих поруч стільців, причому хлопчики сідають на місця з непарними номера­ми, а дівчатка – на місця з парними номерами. Скількома способами це можна  зробити? Відповідь: (5!)∙(5!)

 

21. Скільки різних слів можна утворити переставлянням букв у слові «арифметика»?

 

22. Автомобільні номери складаються з однієї, двох або трьох букв і чотирьох цифр. Знайти число таких номерів, використовуючи 30 букви алфавіту.

 

 

23. Скільки різних дільників має число 83∙94? Скласти таблицю всіх дільників цього числа.

 

24. Від А до В 999 км. Вздовж дороги стоять стовпи, на яких вказано відстані до А і до В | 0.999 | ; | 1.998| ; | 2.997] ; . . . ; | 999.0 |. Скільки серед них таких, на яких є тільки дві різні цифри? Відповідь: 40.

 

25. Пасажир залишив речі в автоматичній камері схову, а коли при­йшов одержувати речі, то виявилось, що він забув номер. Він лише па­м'ятає, що в номері були цифри 23 і 37. Щоб відкрити камеру, треба пра­вильно набрати п'ятизначний номер. Яку найбільшу кількість номерів треба перебрати, щоб відкрити камеру?

 

25. В прямокутній таблиці з m рядків і n стовпців записані числа +1 і -1 так, що добуток чисел в кожному рядку і кожному стовпці дорівнює 1. Скількома способами це можна зробити?

Відповідь: Всі таблиці, які мають вказану в умові задачі властивість, можна скласти так. Всюди, крім останнього рядка і останнього стовпця, до­вільно виписуємо +1 і –1. Це можна зробити 2(n-1)(m-1) способами. Нехай р – добуток всіх виписаних чисел. Тепер в кожному з перших m -1  рядів на перетині з n-м стовпцем виписуємо +1 або –1 так, щоб добуток чисел в усьому рядку дорівнював 1. Позначимо добуток чисел, які будуть виписані в n-му рядку, через x. Тепер в кожному з перших n-1 стовпців на перетині з m-м рядком випишемо теж +1 або –1 тaк, щоб добуток в стовпці дорівнював 1. Добуток чисел, які будуть виписані в m-му рядку, позначимо через у. Зауважимо, що х і у мають однаковий знак. Справді, рх = 1, ру = 1. і тому р2ху = 1, і, значить, ху > 0. Випишемо на перетині т-го рядка і л-го стовпця 1 з тим знаком, який мають х і у. Тоді добуток чисел в n-му стовпці і m-му рядку також до­рівнюватиме 1. Склали таблицю, яка має вказану властивість. Число всіх  таких   таблиць   дорівнює  2(n-1)(m-1).

26. На залізниці є десять семафорів, кожний з яких може передати три сигнали: червоний, жовтий, зелений. Скільки різних сигналів можна передати за допомогою усіх семафорів. Відповідь: 310.

 

27. Існує десять ліхтариків, кожен з яких може бути або включений, або виключений.Скільки різних сигналів можна передати за допомогою усіх ліхтарів? Відповідь: 210.

 

28. Проста шашка знаходиться в крайньому нижньому лівому полі шахової дошки. Скількома різними способами вона може  пройти в дамки? Способи вважаються різними, якщо вони відміняються один від одного хоча б одним ходом.

Відповідь: На другу горизонталь шашка може перейти одним способом, на третю – двома, на четверту – трьома, на п’яту – шістьма, на шосту – дев’ятьма, на сьому горизонталь – двадцятьма способами, а пройти в дамки шашка може 35 способами.

 

29. У квадраті 3х3 клітинки верхня ліва точка позначена літерою А. Скільки можна побудувати трикутників, одною з вершин яких є точка А, а дві інші вершини – будь-які вершини квадратиків 1х1 даного квадрата? Відповідь: 25 трикутників.

 

 

Практична частина

 

Завдання 1. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для знаходження кількості натуральних чисел, які не діляться на n, на m, на p на проміжку (q, h)') в залежності від введених натуральних чисел  km, n, p, h, q.

Реалізація.

import random

print('Алгоритм пошуку кількості натуральних чисел, які не діляться на n, на m, на p на проміжку (q, h)')

h=random.randint(2,500); print(' Нижня межа для проміжку чисел h=',h)

q=random.randint(500,1000); print('Верхня межа для проміжку чисел q=',q)

n=random.randint(2,9); print(' Перший дільник n=',n)

m=random.randint(10,19); print('Другий дільник m=',m)

p=random.randint(20,30); print(' Третій дільник p=',p)

w=0

for k in range(h,q):

    if not((k%n==0)or(k%m==0)or(k%p==0)):

        w+=1

print('Кількість чисел із ',q-h,' натуральних чисел на проміжку (',h,'; ', q,')')

print('які не діляться або на ',n,' або на ',m, ' або на ',p,' дорівнює', w)

v=0

for k in range(h,q):

    if (k%n==0)or(k%m==0)or(k%p==0):

        v+=1

print('Кількість чисел із ',q-h,' натуральних чисел на проміжку (',h,'; ', q,')')

print('які  діляться або на ',n,' або на ',m, ' або на ',p,' дорівнює', v)

a=[s for s in range(h,q) if ((s%n==0)or(s%m==0)or(s%p==0))]

print('Перелік натуральних чисел, які  діляться або на ',n,' або на ',m, ' або на ',p,' дорівнює',a)

 

Завдання 2. Якщо б школяр купив  k зошитів, то в нього залишилось  р гривень.  Якщо б школяр купив  k+4 зошитів, то в нього  не вистачило   q гривень.  Скільки грошей було у школяра?  Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для знаходження кількості грошей у школяра, в залежності від введених натуральних чисел  kpq.

Математична модель завдання 7:

X= 0,25*k*(p+q)+ p  гривень  у школяра

Реалізація.

import random

k=random.randint(1,999)

p=random.randint(1,25)

q=random.randint(1,50)

print('Кількість куплених зошитів k=',k, ' тоді залишок гривень', p)

print('Кількість куплених зошитів k+4=',k+4,'тоді недостаток гривень', q)

X=0.25*k*(p+q)+p

print('Вартість одного зошита ', (X-p)/k, 'гривень')

print('Кількість наявних гривень у хлопчика:', X)

 

Завдання 3.  Два рябих поросят та три полосатих  просят разом важать m  кг. А різниця у вазі між такою  ж кількістю поросят   k кг. Скільки важить окремо  рябе поросятко та окремо полосате порося, якщо два рябих поросят мають однакову вагу, і троє полосатих поросят мають однакову вагу?  Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для знаходження ваги чорного та білого поросят, в залежності від введених натуральних чисел  km.

Математична модель завдання 8:   

X= 0,25*(m-k) кг – вага рябого  порося

У= 0,5*(m+k/3 кг – вага  полосатого порося

Реалізація.

import random

k=random.randint(35,48)

m=random.randint(2,6)

print('Разом вага 2х +3у  для 5-ти  поросят ', k)

print('Різниця |2х -3у | у вазі поросят ', m)

print('X= 0,5*(k-m) кг – вага рябого порося =', 0.25*(k-m))

print('У= 0,5*(m+k) кг – вага полосатого порося=', 0.5*(m+k)//3 )

 

Завдання 4. За один і той самий час велосипедист долає 1/частину шляху, а другий велосипедист долає  1/k  частину того самого шляху.  Різниця між пройденими відстанями дорівює n км.  Який шлях повинен проїхати  велосипедист?  Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для знаходження довжини  усього шляху, в залежності від введених натуральних чисел  km, n.

Математична модель завдання 9:   

Sn*m*k/(m-k) км – весь шлях велосипедиста

Реалізація.

import random

k=random.randint(4,7)

m=random.randint(7,9)

n=random.randint(3,5)

print('Частина шляху 1-ого велосипедиста =', k)

print('Частина шляху 2-ого велосипедиста = ', m)

print('Різниця пройденого шляху між 1-им та 2-им велосипедистами = ', n)

print('S= n*m*k/(m-k) км – весь шлях велосипедиста =', n*m*k//abs(m-k))

print('Швидкість 1-го велосипедиста =', (n*m*k//abs(m-k))/k)

print('Швидкість 2-го велосипедиста =', (n*m*k//abs(m-k))/m)

 

Завдання 5. За 4 смартфони бізнесмен заплатив  електронною карткою. Усі чотири смартфони без першого  коштують тис. гривень.  Усі чотири смартфони без другого  коштують  n тис. гривень.

Усі чотири смартфони без третього  коштують  k тис. гривень.  Усі чотири смартфони без четвертого  коштують  р тис. гривень.  Скільки коштували всі чотири смартфони. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для знаходження вартості усіх чотирьох смартфонів разом, в залежності від введених натуральних чисел  km, n, p.

Математична модель завдання 10:    

S=(m+n+k+p)/3  тис. грн вартість усіх чотирьох смартфонів разом

Реалізація.

import random

k=random.randint(36,57)

m=random.randint(37,58)

n=random.randint(39,59)

p=random.randint(34,54)

print('S=(m+n+k+p)/3  тис. грн вартість усіх чотирьох смартфонів разом=', (m+n+k+p)//3,'тис. грн ' )

print('Вартість 1-го смартфона =', ((m+n+k+p)//3)-k,'тис. грн ' )

print('Вартість 2-го смартфона =', ((m+n+k+p)//3)-m,'тис. грн ' )

print('Вартість 3-го смартфона =', ((m+n+k+p)//3)-n,'тис. грн ' )

print('Вартість 4-го смартфона =', ((m+n+k+p)//3)-p,'тис. грн ' )

 

Завдання 6. У шаховому турнірі приймають участь k осіб. Кожний з кожним зіграв по  n партії. Скільки усіх зіграних шахових партій на турнірі? Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для знаходження кількості усіх зігранних шахових партій, в залежності від введених натуральних чисел  k.

 

Математична модель завдання 11:

M=0,5*n*k(k-1)  шахових партій,

Реалізація.

import random

k=random.randint(10,15)

n=random.randint(1,3)

print('Кількість шахматистів =',  k,'осіб' )

print('Кількість партій між двома шахматистами =',  n,'партій  гри в шахи' )

print('Кількість усіх шахових партій, зіграних усіма учасниками в турнірі=', n*k*(k-1)//2 ,'шахових партій' )

print('Кількість усіх шахових партій, зіграних одним учасником в турнірі=', n*(k-1) ,'шахових партій' )

 

Завдання 7.  Разом вага чотирьох заповнених контейнерів складає  m тон.  Вантаж для чотирьох контейнерів розподіляються у відношенні  p:g:k:n. Яка вага  кожного  заповненого контейнера? Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для знаходження ваги кожного контейнера, в залежності від введених натуральних чисел  p, g, k, n, m.

Математична модель завдання 12:

1)p*m/(p+g+n+k) тонн вага 1-ого контейнера

2)g*m/(p+g+n+k) тонн вага 2-oго контейнера

3)m*k/(p+g+n+k) тонн вага 3-ого контейнера

4)m*n/(p+g+n+k) тонн вага  4-oго контейнера

Реалізація.

Маючи математичну модель  створити алгоритм самостійно.

 

Завдання 8.   У Вінницю приїхало  m туристів. З них  k туристів не знають жодної іноземної мови,окрім англійської.  Розмовляють німецькою мовою n туристів. Розмовляють французькою мовою p туристів. Скільки серед туристів осіб, що знають дві мови: німецьку та французьку? Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для знаходження кількості двомовних туристів, в залежності від введених натуральних чисел  p, k, n, m.

Математична модель завдання 13:

Х=n+p-m+k.

Реалізація.

Маючи математичну модель  створити алгоритм самостійно.

 

Результат виконаної практичної роботи надіслати вашому учителю на електронну скриньку:  vinnser@gmail.com (Сергій Петрович)

                            ***********

Практична робота для другого уроку


Алгоритми мовою Python  для знаходження розв’язків нелінійних рівнянь з двома змінними в цілих числах.

 

 

 

 

Завдання 1. Створити та реалізувати мовою програмування Python  в середовищі програмування Thonny алгоритм для знаходження двійок цілих чисел, що задовольняють нелінійне рівняння з двома змінними: 6x2-23xy+20y2+43x-83y +77=0.

Моделювання алгоритму.

Проаналізуємо математичну модель даного рівняння для  створення алгоритму.

Знайдемо аналітично розв’язки даного рівняння в цілих числах

6x2-23xy+20y2+43x-83y +77=0

Розкладаємо на множники способом групування:

(2x-5y+7)(3x-4y+11)=0

Таким чином, прирівнявши кожний множник до нуля,

отримуємо два лінійних рівняння в цілих числах:

2x-5y+7=0

3x-4y+11=0.

Отже, для рівняння 2x-5y+7=0 маємо такі цілі розв’язки:

х1=14-5k,  у1=7-2k,   де k, - цілі числа. 

для рівняння 3x-4y+11=0  маємо такі цілі розв’язки:

х2=11-4m,  у2= 11-3m,   де m, - цілі числа.

  Тобто цілі розв’язки рівняння - це пара двійок цілих чисел:

(х1у1) =(14-5k,  7-2k),  де k, - цілі числа 

(х2у2) =(11-4m ; 11-3m),   де m - цілі числа 

 

Реалізація алгоритму.

 

print('Алгоритм пошуку цілих pозвязків нелінійного рівняння 6x^2-23xy+20y^2+43x-83y +77=0')

p=4; t=8;

w=['None']*p; v=['None']*p; f=['None']*p; h=['None']*p;

n=0

for i in range(p):

    for k in range(1,t):

        for m in range(1,t):

            n=n+1

            v[i]=14-5*k    #x1

            f[i]=7-2*k    #y1

            w[i]=11-4*m  #x2

            h[i]=11-3*m    #y2

            print(n,' -a 1-двійка чисел, що є розвязком рівняння 6x^2-23xy+20y^2+43x-83y +77=0, (x1,y1)=(', v[i],'; ',f[i], ')')

            print(n,' -a 2-двійка чисел, що є розвязком рівняння 6x^2-23xy+20y^2+43x-83y +77=0, (x2,y2)=(',w[i],'; ',h[i],')')

 

Протестувати програму декілька разів:

Тест1. Якщо t=5p=5;  

Тест2. Якщо t=7p=7;  

Тест3. Якщо t=6p=9 

 

 

Завдання 2Створити та реалізувати мовою програмування Python  в середовищі програмування Thonny алгоритм для знаходження двійок цілих чисел, що задовольняють нелінійне рівняння з двома змінними: 6x2-51xy+108y2+27x-111y +21=0

 

Моделювання алгоритму.

Проаналізуємо математичну модель даного рівняння для  створення алгоритму.

Знайдемо аналітично розв’язки даного рівняння в цілих числах

6x2-51xy+108y2+27x-111y +21=0

Розкладаємо на множники способом групування:

 (2x-9y+7)(3x-12y+3)=0.

Отримуємо два лінійних рівняння в цілих числах:

2x-9y+7=0

3x-12y+3=0

Отже, прирівнявши кожний множник до нуля,

для рівняння 2x-9y+7=0 маємо такі цілі розв’язки:

тоді х1=28-9k,  у1=7-2k,   де k, - цілі числа;

для рівняння 3x-12y+3=0 маємо такі цілі розв’язки:

х2=-1-4m,  у2= -m,   де m, - цілі числа.

  Тобто цілі розв’язки рівняння - це пара двійок цілих чисел:

(х1у1) =(28-9k,  7-2k),  де k, - цілі числа 

(х2у2) =(-1-4m- m),   де m - цілі числа 

 

Реалізація алгоритму.

 

print('Алгоритм пошуку цілих pозвязків нелінійного рівняння 6x^2-51xy+108y^2+27x-111y +21=0')

p=4; t=4;

w=['None']*p; v=['None']*p; f=['None']*p; h=['None']*p;

n=0

for i in range(p):

    for k in range(1,t):

        for m in range(1,t):

            n=n+1

            v[i]=28-9*k   #x1

            f[i]=7-2*k    #y1

            w[i]=-1-4*m  #x2

            h[i]=-m    #y2

            print(n,' -a 1-двійка чисел, що є розвязком рівняння 6x^2-51xy+108y^2+27x-111y +21=0, (x1,y1)=(', v[i],'; ',f[i], ')')

            print(n,' -a 2-двійка чисел, що є розвязком рівняння 6x^2-51xy+108y^2+27x-111y +21=0, (x2,y2)=(',w[i],'; ',h[i],')')

 

Протестувати програму декілька разів:

Тест1. Якщо t=5; k=6;  

Тест2. Якщо t=7; k=9;  

Тест3. Якщо t=8; k=7  

 

 

Завдання 3Створити та реалізувати мовою програмування Python  в середовищі програмування Thonny алгоритм для знаходження двійок цілих чисел, що задовольняють нелінійне рівняння з двома змінними: 28x2 -140yх + 168y2 =0.

 

Моделювання алгоритму.

Проаналізуємо математичну модель даного рівняння для  створення алгоритму.

Знайдемо аналітично розв’язки даного рівняння в цілих числах

А)28x2 -140yх + 168y2 =0

Розкладаємо на множники способом групування:

28(x-2y)(x-3y)=0;

(x-2y)(x-3y)=0.

Отже, прирівнявши кожний множник до нуля,

 отримаємо такі два цілі розв’язки:  х1= 3у1,    х2=2у2   

Тобто розв’язки рівняння - це пара двійок цілих чисел:

1; у1) =(3k,  k),  де k, - цілі числа 

2; у2) =(2m,  m),   де m - цілі числа 

 Узагальнення:

Знайти розв’язки рівняння в цілих числах

ax+ byх + cy= 0

а(х ‒ k1y) (х ‒ k2y)=0

Якщо b2 ‒ 4ac – невід’ємний,  то ax+ byх + cy= а(х ‒ k1y) (х ‒ k2y),

де k1k2 ‒ корені квадратного рівняння  ak+ bk + c 0.

 

Тобто цілі розв’язки рівняння 

ax+ byх + cy= а(х ‒ k1y) (х ‒ k2y)=0, -

 це пара двійок цілих чисел:

 (k1т,  m),   (k2n,  n),   

де k1k2 ‒ цілі корені квадратного рівняння  ak+ bk + c 0.

n, m - цілі числа 

 

Реалізація алгоритму.

 

print('Алгоритм пошуку цілих pозвязків нелінійного рівняння 28x^2-140yх+168y^2=0')

p=4; t=4;

w=['None']*p; v=['None']*p; f=['None']*p; h=['None']*p;

n=0

for i in range(p):

    for k in range(1,t):

        for m in range(1,t):

            n=n+1

            v[i]=3*k   #x1

            f[i]=k    #y1

            w[i]=2*m  #x2

            h[i]=m    #y2

            print(n,' -a 1-двійка чисел, що є розвязком рівняння 28x^2-140yх+168y^2=0, (x1,y1)=(', v[i],'; ',f[i], ')')

            print(n,' -a 2-двійка чисел, що є розвязком рівняння 28x^2-140yх+168y^2=0, (x2,y2)=(',w[i],'; ',h[i],')')

 

 

Протестувати програму декілька разів:

Тест1. Якщо t=5; k=5;  

Тест2. Якщо t=7; k=8;  

Тест3. Якщо t=6; k=10  

 

Завдання 4Створити та реалізувати мовою програмування Python  в середовищі програмування Thonny алгоритм для знаходження двійок цілих чисел, що задовольняють нелінійне рівняння з двома змінними: 6x2 -51yх + 108y2 =0.

Моделювання алгоритму.

Проаналізуємо математичну модель даного рівняння для  створення алгоритму.

Знайдемо аналітично розв’язки даного рівняння в цілих числах

6x2 -51yх + 108y2 =0

Розкладаємо на множники способом групування:

(2x-9y)(3x-12y)=0

Отже, прирівнявши кожний множник до нуля,

отримаємо такі два цілі розв’язки:

 х1= 9n,  y1=2n, n - цілі числа

 та

х2=4у2.

Тобто цілі розв’язки рівняння - це пара двійок цілих чисел:

(х1у1) = (9k,  2k),  k,  - цілі числа 

(х2у2) = (4m,  m),   m - цілі числа 

 

Реалізація алгоритму.

 

print('Алгоритм пошуку цілих pозвязків нелінійного рівняння 6x^2 -51yх + 108y^2 =0')

p=4; t=10;

w=['None']*p; v=['None']*p; f=['None']*p; h=['None']*p;

n=0

for i in range(p):

    for k in range(1,t):

        for m in range(1,t):

            n=n+1

            v[i]=9*k   #x1

            f[i]=2*k    #y1

            w[i]=4*m  #x2

            h[i]=m    #y2

            print(n,' -a 1-двійка чисел, що є розвязком рівняння 6x^2 -51yх + 108y^2 =0, (x1,y1)=(', v[i],'; ',f[i], ')')

            print(n,' -a 2-двійка чисел, що є розвязком рівняння 6x^2 -51yх + 108y^2 =0, (x2,y2)=(',w[i],'; ',h[i],')')

 

 

Протестувати програму декілька разів:

Тест1. Якщо t=5; k=8;  

Тест2. Якщо t=7; k=6;  

Тест3. Якщо t=6; k=5  

 

Завдання 5. Створити та реалізувати мовою програмування Python  в середовищі програмування Thonny алгоритм для знаходження двійок цілих чисел, що задовольняють нелінійне рівняння з двома змінними: 48x2-86xy+70y2+94x-88y +45=0.

 

Моделювання алгоритму.

Проаналізуємо математичну модель даного рівняння для  створення алгоритму.

Знайдемо аналітично розв’язки даного рівняння в цілих числах

48x2-86xy+35y2+94x-88y +45=0.

Розкладаємо на множники способом групування:

(6x-7y+5)(8x-5y+9)=0

Таким чином, прирівнявши кожний множник до нуля,

отримуємо два лінійних рівняння в цілих числах:

6x-7y+5=0

8x-5y+9=0

Отже, для рівняння 6x-7y+5=0 маємо такі цілі розв’язки:

х1=5-7k,  у1=5-6k,   де k, - цілі числа. 

для рівняння 8x-5y+9=0  маємо такі цілі розв’язки:

х2=-18-5m,  у2-27-8m,   де m, - цілі числа.

  Тобто цілі розв’язки рівняння - це пара двійок цілих чисел:

(х1у1) =(5-7k,  5-6k),  де k, - цілі числа 

(х2у2) =(-18-5m; -27-8m ),  де m - цілі числа 

 

Реалізація алгоритму.

 

print('Алгоритм пошуку цілих pозвязків нелінійного рівняння 48x^2-86xy+35y^2+94x-88y +45=0.')

p=4; t=3;

w=['None']*p; v=['None']*p; f=['None']*p; h=['None']*p;

n=0

for i in range(p):

    for k in range(1,t):

        for m in range(1,t):

            n=n+1

            v[i]=5-7*k   #x1

            f[i]=5-6*k    #y1

            w[i]=-18-5*m   #x2

            h[i]=-27-8*m    #y2

            print(n,' -a 1-двійка чисел, що є розвязком рівняння 48x^2-86xy+35y^2+94x-88y +45=0., (x1,y1)=(', v[i],'; ',f[i], ')')

            print(n,' -a 2-двійка чисел, що є розвязком рівняння 48x^2-86xy+35y^2+94x-88y +45=0., (x2,y2)=(',w[i],'; ',h[i],')')

 

Протестувати програму декілька разів:

Тест1. Якщо t=5; k=8;  

Тест2. Якщо t=7; k=6;  

Тест3. Якщо t=6; k=11  

 

 

Завдання 6. Створити та реалізувати мовою програмування Python  в середовищі програмування Thonny алгоритм для знаходження двійок цілих чисел, що задовольняють нелінійне рівняння з двома змінними: 8x2+2xy-15y2+50x-24y +63=0.

 

Моделювання алгоритму.

Проаналізуємо математичну модель даного рівняння для  створення алгоритму.

Знайдемо аналітично розв’язки даного рівняння в цілих числах

8x2+2xy-15y2+50x-24y +63=0.

Розкладаємо на множники способом групування:

(-2x-3y-9)(-4x+5y-7)=0

Таким чином, прирівнявши кожний множник до нуля,

отримуємо два лінійних рівняння в цілих числах:

-2x-3y-9=0

-4x+5y-7=0

Отже, для рівняння -2x-3y-9=0 маємо такі цілі розв’язки:

х1=3k,  у1=-3-2k,   де k, - цілі числа. 

для рівняння -4x+5y-7=0  маємо такі цілі розв’язки:

х2=2+5m,  у2=3+4m,   де m, - цілі числа.

  Тобто цілі розв’язки рівняння - це пара двійок цілих чисел:

(х1у1) =(3k,  -3-2k),  де k, - цілі числа 

(х2у2) =(2+5m; 3+4m),  де m - цілі числа. 

 

Реалізація алгоритму.

 

print('Алгоритм пошуку цілих pозвязків нелінійного рівняння 8x^2+2xy-15y^2+50x-24y+63=0.')

p=4; t=3;

w=['None']*p; v=['None']*p; f=['None']*p; h=['None']*p;

n=0

for i in range(p):

    for k in range(1,t):

        for m in range(1,t):

            n=n+1

            v[i]=3*k   #x1

            f[i]=-3-2*k    #y1

            w[i]=2+5*m   #x2

            h[i]=3+4*m    #y2

            print(n,' -a 1-двійка чисел, що є розвязком рівняння 8x^2+2xy-15y^2+50x-24y+63=0, (x1,y1)=(', v[i],'; ',f[i], ')')

            print(n,' -a 2-двійка чисел, що є розвязком рівняння 8x^2+2xy-15y^2+50x-24y+63=0, (x2,y2)=(',w[i],'; ',h[i],')')

 

Протестувати програму декілька разів:

Тест1. Якщо t=5; k=9;  

Тест2. Якщо t=7; k=10;  

Тест3. Якщо t=6; k=12. 

Результат виконаної практичної роботи надіслати вашому учителю на електронну скриньку:  vinnser@gmail.com (Сергій Петрович)

*****

Додаткові завдання на розвиток кмітливості






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

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