Модульні рівняння та нерівності
Зразки розв'язування модульних рівнянь і нерівностей
Завдання. Створити алгоритм мовою програмування Python3 для знаходження найменших та найбільших значень виразу з модулями вигляду:
m*|x-a|+n*|x-b|+k*|x-c|,
якщо змінні a,b,с,m,n,k – це довільні натуральні числа в середовищі програмування Thonny.
import random
print(" Пошук глобального екстремуму(або MIN, або MAX)")
print("Вираз з модулями: m*|x-a|+n*|x-b|+k*|x-c|=?")
q=100
m=random.randint(-q,q) # присвоєння випадкового цілого числа змінній m
n=random.randint(-q,q) # присвоєння випадкового цілого числа змінній n
k=random.randint(-q,q) # присвоєння випадкового цілого числа змінній k
a=random.randint(-q,q) # присвоєння випадкового цілого числа змінній a
b=random.randint(-q,q) # присвоєння випадкового цілого числа змінній b
c=random.randint(-q,q) # присвоєння випадкового цілого числа змінній c
g=max([a,b,c]); q=min([a,b,c]); p=a+b+c-g-q; s=m+n+k
print("Точки екстремуму:","x1=",q, "x2=",p, "x3=", g)
print("Вираз з модулями:",m,"*|x-",q,"|+",n,"*|x-",p,"|+",k,"*|x-",g,"|")
print("Коефіцієнти:","m=",m, ";n=",n, ";k=", k, ";Сума: m+n+k=",m+n+k)
print("1-ий проміжок: x<",q)
if -m-n-k==0:
F1=m*q+n*p+k*g; print("константа, якщо х<x1, F1(x)=", F1); FQ=F1
elif -m-n-k<0:
k1=-m-n-k; l1=m*q+n*p+k*g; FQ=k1*q+l1; X01=-l1/k1
print("спадна, якщо х<x1, F1(x)=",k1,"*x+",l1,"FQ=",k1*q+l1,"X01=",-l1/k1)
else:
k1=-m-n-k; l1=m*q+n*p+k*g; FQ=k1*q+l1;X01=-l1/k1
print("зростаюча, якщо х<x1, F1(x)=",k1,"*x+",l1,"FQ=",k1*q+l1,"X01=",-l1/k1)
print("2-ий проміжок: xє[",q, ";",p,")")
if m-n-k==0:
F2=-m*q+n*p+k*g; print("константа, якщо х<x1, F2(x)=", F2); FP=F2
elif m-n-k<0:
k2=m-n-k; l2=-m*q+n*p+k*g;FP=k2*p+l2; X02=-l2/k2
print("спадна, якщо x1 < x < x2, F2(x)=",k2,"*x+",l2, "FP=",k2*p+l2,"X02=",-l2/k2)
else:
k2=m-n-k; l2=-m*q+n*p+k*g; FP=k2*p+l2;X02=-l2/k2
print("зростаюча, якщо x1 < x < x2, F2(x)=",k2,"*x+",l2, "FP=",k2*p+l2, "X02=",-l2/k2)
print("3-iй проміжок: xє[",p, ";",g,")")
if m+n-k==0:
F3=-m*q-n*p+k*g; print("константа, якщо x2< х <x3, F3(x)=", F3);FG=F3
elif -m+n+k<0:
k3=m+n-k; l3=-m*q-n*p+k*g; FG=k3*g+l3; X03=-l3/k3
print("спадна, якщо x2 < x < x3, F3(x)=",k3,"*x+",l3, "FG=",k3*g+l3, "X03=",-l3/k3)
else:
k3=m+n-k; l3=-m*q-n*p+k*g; FG=k3*g+l3; X03=-l3/k3
print("зростаюча, якщо x2 < x < x3, F3(x)=",k3,"*x+",l3, "FG=",k3*g+l3,"X03=",-l3/k3)
print("4-iй проміжок: xє[",g, "; +oo)")
if +m+n+k==0:
F4=-m*q-n*p-k*g; print("константа, якщо x3< х <+oo, F4(x)=", F4); FG=F4
elif +m+n+k<0:
k4=m+n+k; l4=-m*q-n*p-k*g; FG= k4*g+l4; X04=-l4/k4
print("спадна, якщо x3 < x < +oo, F4(x)=",k4,"*x+",l4, "FG=",k4*g+l4,"X04=",-l4/k4 )
else:
k4=m+n+k; l4=-m*q-n*p-k*g; FG= k4*g+l4
print("зростаюча, якщо x3 < x < +oo, F4(x)=",k4,"*x+",l4, "FG=",k4*g+l4,"X04=",-l4/k4 )
if m+n+k==0:
MIN=min([FQ,FP,FG]); MAX=max([FQ,FP,FG])
print("MIN=", MIN, "MAX=",MAX)
elif m+n+k<0:
MIN=min([FQ,FP,FG]); MAX=max([FQ,FP,FG])
print("Перелом ламаної =", MIN, "GLOBAL_MAX=",MAX)
else:
MIN=min([FQ,FP,FG]); MAX=max([FQ,FP,FG])
print("Перелом ламаної=", MAX, "GLOBAL_MIN=",MIN)
Результати виконання алгоритму:
Тест 1
Пошук глобального екстремуму(або MIN, або MAX)
Вираз з модулями: m*|x-a|+n*|x-b|+k*|x-c|=?
Точки екстремуму: x1= -36 x2= 21 x3= 66
Вираз з модулями: 0 *|x- -36 |+ -71 *|x- 21 |+ 25 *|x- 66 |
Коефіцієнти: m= 0 ;n= -71 ;k= 25 ;Сума: m+n+k= -46
1-ий проміжок: x< -36
зростаюча, якщо х<x1, F1(x)= 46 *x+ 159 FQ= -1497 X01= -3.4565217391304346
2-ий проміжок: xє[ -36 ; 21 )
зростаюча, якщо x1 < x < x2, F2(x)= 46 *x+ 159 FP= 1125 X02= -3.4565217391304346
3-iй проміжок: xє[ 21 ; 66 )
спадна, якщо x2 < x < x3, F3(x)= -96 *x+ 3141 FG= -3195 X03= 32.71875
4-iй проміжок: xє[ 66 ; +oo)
спадна, якщо x3 < x < +oo, F4(x)= -46 *x+ -159 FG= -3195 X04= -3.4565217391304346
LOCAL_MIN= -3195 GLOBAL_MAX= 1125
Тест 2
Пошук глобального екстремуму(або MIN, або MAX)
Вираз з модулями: m*|x-a|+n*|x-b|+k*|x-c|=?
Точки екстремуму: x1= -98 x2= -55 x3= 92
Вираз з модулями: 49 *|x- -98 |+ 77 *|x- -55 |+ 36 *|x- 92 |
Коефіцієнти: m= 49 ;n= 77 ;k= 36 ;Сума: m+n+k= 162
1-ий проміжок: x< -98
спадна, якщо х<x1, F1(x)= -162 *x+ -5725 FQ= 10151 X01= -35.339506172839506
2-ий проміжок: xє[ -98 ; -55 )
спадна, якщо x1 < x < x2, F2(x)= -64 *x+ 3879 FP= 7399 X02= 60.609375
3-iй проміжок: xє[ -55 ; 92 )
зростаюча, якщо x2 < x < x3, F3(x)= 90 *x+ 12349 FG= 20629 X03= -137.2111111111111
4-iй проміжок: xє[ 92 ; +oo)
зростаюча, якщо x3 < x < +oo, F4(x)= 162 *x+ 5725 FG= 20629 X04= -35.339506172839506
LOCAL_MAX= 20629 GLOBAL_MIN= 7399
****************************************
Алгоритм пошуку НСД та НСК на Python3
import random
a=84*random.randint(1,1000000)
b=105*random.randint(1,1000000)
def nsd(x,y):
if x!=0:
return nsd(y%x,x)
else:
return y
def nsk(x,y):
return (x//nsd(x,y))*y
print("HCD(",a,b,")=", nsd(a,b))
print("HCK(",a,b,")=", nsk(a,b))
*****************************
Алгоритм пошуку властивостей подільності
трицифрових чисел на Python3
import random
print("пошук властивостей числа: abc")
k=random.randint(100,998)
print("трицифрове число:",k)
a=k//100; print("цифра розряду
сотень:",a)
b=(k-a*100)//10; print("цифра розряду
десятків:",b)
c=k%10; print("цифра розряду
одиниць:",c)
if (a!=b)and (a!=c)and (b!=c):
print("немає рівних цифр")
if (a==b) or (b==c) or (a==c):
print("має однакові цифри")
if (a==c):
print("це число паліндромне")
g=max([a,b,c]); q=min([a,b,c])
p=a+b+c-g-q
if q+p>g:
print("це
трикутне число")
if g==p+q:
print("це дивакувате число")
if g==p*q:
print("це добуткове число")
if (g==p**2)or(g==q**2)or(p**2==q):
print('це квадратоване число')
if (g==c)and(a==q)and(p==b):
print('це неспадний порядок цифр числа')
if (g==a)and(q==c)and(p==b):
print('це незростаючий порядок цифр числа')
if (c%2==0)and((a+b+c)%3==0)and((a+b+c)%9==0):
print('це парне число, що ділиться на 3, на 6, на 9, на 18')
if (c%2==0)and(c%5==0)and((a+b+c)%3==0):
print('це парне число, що ділиться на 3, на 6, на 10, на 15')
h=[2,3,5,7,11,13,17,19,23,29,31]
v=['None']*11
z=0
m=0
for j in range(len(h)):
z=z+k%int(h[j])
print("k=",k,"=", h[j],"*",k//int(h[j]),
"+", k%int(h[j]))
if
k%int(h[j])==0:
print("це складене число")
else:
m=m+1
if m==11:
print("це просте число")
else:
print("це складене число")
**********************************************
Алгоритм креслення куба на Python3
import turtle
print("Алгоритм зміни
позиції під час виконання куба")
t=turtle.Pen()
t.up() #вказівка не залишати слід від пензлика
t.goto(-50,-50) #вказівка перемістити пензлик в точку (х, у)
t.down() #вказівка залишати слід від пензлика
t.width(2) #вказівка товщини пензлика на 2 пікселі
t.color(0.4, 0.6, 0.1) #вказівка кольору пензлика
for k in range(1, 3): #вказівка повторення(цикл) дій від 1 до 2
for j in range(1, 5): #вказівка повторення(цикл) дій від 1 до 4
t.shape('arrow') #викликається новий виконавець вказівок в модулі turtle
t.forward(200) #вказіка руху вперед пензлика на 100 пікселів
t.left(90) #вказіка повороту пензлика вліво на 90 градусів
t.width(3)
#зміна
товщини пензлика на 3 пікселі
t.goto(0,0) #вказівка перемістити пензлик в точку (х, у)
t.down()
#вказівка залишати
слід від пензлика
t.color(0.0, 0.9, 0.5)
t.goto(0, 200) #вказівка перемістити пензлик в точку (х, у)
t.goto(-50,150) #вказівка перемістити пензлик в точку (х, у)
t.goto(150,150) #вказівка перемістити пензлик в точку (х, у)
t.goto(200,200) #вказівка перемістити пензлик в точку (х, у)
t.goto(200,0) #вказівка перемістити пензлик в точку (х, у)
t.goto(150,-50) #вказівка перемістити пензлик в
точку (х, у)
*******************************************
Алгоритм креслення 4-кутної піраміди на Python3
import turtle
print("Алгоритм
зміни позиції для виконавця піраміди")
t=turtle.Pen()
t.up() #вказівка не залишати слід від пензлика
t.goto(-100,-100) #вказівка перемістити пензлик в точку (х, у)
t.down() #вказівка залишати слід від пензлика
t.width(2) #вказівка товщини пензлика на 2 пікселі
t.color(0.4, 0.6,
0.1) #вказівка кольору пензлика
t.goto(100, -100) #вказівка перемістити пензлик в точку (х, у)
t.goto(130,-60) #вказівка перемістити пензлик в точку (х, у)
t.goto(-70,-60) #вказівка перемістити пензлик в точку (х, у)
t.goto(-100,-100) #вказівка перемістити пензлик в точку (х, у)
t.up() #вказівка не залишати слід від пензлика
t.goto(15,-80) #вказівка перемістити пензлик в точку (х, у)
t.down() #вказівка залишати слід від пензлика
t.goto(15,220) #вказівка перемістити пензлик в точку (х, у)
t.goto(-70,-60) #вказівка перемістити пензлик в точку (х, у)
t.goto(130,-60) #вказівка перемістити пензлик в точку (х, у)
t.goto(15,220) #вказівка перемістити пензлик в точку (х, у)
t.goto(100, -100) #вказівка перемістити пензлик в точку (х, у)
t.goto(-100,
-100) #вказівка перемістити пензлик в точку (х, у)
t.goto(15,220) #вказівка перемістити пензлик в точку (х, у)
*********************************
Алгоритм креслення
клітинкового квадрату 5х5 на Python3
import turtle # викликається графічних
модуль turtle
print(" Клітинковий квадрат розміром 5х5 від черепахи")
a=20 #задається розмір клітинки в 20
пікселів
print("Перші 5 квадратів 1 від черепахи")
t=turtle.Pen() #задається об’єкт
Реn(пезлик), якому даємо вказіки
t.width(2) #задається вказіка товщини пензлика
t.up() #задається вказіка підняти пензлик
t.forward(100) #задається
вказіка накреслити відрізок на 100 пікселів
t.down() #задається вказіка опустити пензлик
for j in range(1,6): #вказівка
циклу (повторення дій) з лічильником від 1 до 5 разів
for i in range(1,5): #вказівка вкладений цикл (повторення
дій) з лічильником від 1 до 4 разів
t.forward(a) #команда креслення
відрізка а пікселів
t.left(90) #команда повороту
олівця на 90 градусів вліво
a=a+20 #команда
збільшення сторони квадрату на 20 пікселів
t.forward(100)
t.left(90)
print("Другі 5 квадратів 2
від черепахи")
t.shape('arrow') #задається змінна в графічному модулі turtle
t=turtle.Pen() #задається
об’єкт Реn(пезлик), якому даємо вказіки
t.up() #задається вказіка підняти пензлик
t.goto(200,100) #вказіка опустити пензлик в точці (х, у)
t.down() #задається вказіка товщини пензлика
t.right(180) #команда
повороту олівця на 180 градусів вправо
a=20 #задається розмір
клітинки в 20 пікселів
for j in range(1,6): #вказівка циклу з лічильником від 1 до 5
for i in range(1,5): #вказівка циклу з лічильником від 1 до 4
t.forward(a) #команда креслення відрізка а пікселів
t.left(90) #команда повороту олівця на 90 градусів
a=a+20 #задається розмір клітинки ще
на 20 пікселів більше
**************************************************************
Алгоритм гри "Відгадай число" на Python3
Завдання 1. Самостійно
створити набридливу гру «Відгадай число між 1 і 100» в середовищі програмування
Thonny. І протестуй цю гру три рази.
Реалізація.
В
алгоритмі використовується тип даних: цілі числа
import
random #
алгоритм запрошує модуль випадкових об’єктів
number=random.randint(1,100) # змінна number
отримує випадкове число
while True: # це початок роботи цикли у передумовою
print("Угадай число між 1 і 100" )
guess=input() # це користувач вводить своє число
i=int(guess) # це число перетворюється в ціле число
if
i==number: #
це перевірка двох чисел на рівність
print("Ура! Це відгадане число.")
break #
це вихід із програми, коли число вгадане
elif
i<number: # це перевірка
двох чисел на нерівність
print("Бери більше число")
elif
i>number: # це перевірка
двох чисел на нерівність
print("Бери менше число")
Завдання 2. Самостійно
створити алгоритм, який обирає випадковим чином два слова із двох різних списків,
а потім їх порівнює, якщо ці два слова різні, то алгоритм обирає інші слова, якщо ці два слова однакові, то алгоритм
закінчує роботу. Реалізувати алгоритм в
середовищі програмування Thonny. І протестуй цю
гру три рази.
Реалізація. В алгоритмі використовується тип даних списки.
import random #
алгоритм запрошує модуль випадкових об’єктів
dictionary=['ломбарди','страховики','кредитори','лихварі','позичальники', 'банки','бухгалетери']
words=['гроші','банки','євросики','кредитори','лихварі','гривні','ломбарди']
K=['None']*100 #оголошується порожній список К
M=['None']*100 #оголошується порожній список М
for n in range(0,100): #оголошується
цикл з лічильником n від 0 до 100
K[n]=random.choice(dictionary) # обирається перше випадкове слово
M[n]=random.choice(words) # обирається друге випадкове слово
print("n=",n)
print("K[",n,"]=",K[n])
print("M[",n,"]=",M[n])
if K[n]==M[n]: #оголошується перевірка двох випадкових слів
print("Ура! Ці два слова однаков!!!")
break #оголошується вихід із алгоритму
Завдання
3. Створити
алгоритм з діями над множинами чисел в в середовищі програмування Thonny. І протестуй цю програму три рази, змінивши
елементи.
Реалізація.
В
алгоритмі використовується тип даних: множини чисел
A={10,9,
8,7,6,5}
print("Множина
A=",A, type(A))
B={1,2, 3,4,5,6}
print("Множина
B=",B, type(B))
C=A&B
print("Пертин
двох множин C=А&B=",C, type(C))
D=A|B
print("Обєднання
двох множин D=А|B=",D, type(D))
G=A-B
print("Різниця
двох множин G=А-B=",G, type(G))
Q=B-A
print("Різниця
двох множин Q=B-A=",Q, type(Q))
H=A^B
print("Симетрична
різниця двох множин H=A^B=(А|B)-(A&B)=",H, type(H))
F=H|{12,11,10,9,
8,7,}
print("Доповнення
порожньої множини F=",F, type(F))
F=F&{0,9,
8,7,6,5,4,3,2,1}
print("Перетин
множини F з множиною цифр =",F, type(F))
F=F-{10,19,
8,7,6,5,4,3,2,1}
print("Різниця
множини F з деякою множиною =",F, type(F))
F=F^{18,19,
8,7,6,5,4,3,2,1}
print("Симетрична
різниця множини F з деякою множиною =",F, type(F))
Завдання
4. Створити
алгоритм з відношеннями над множинами
чисел в в середовищі програмування Thonny. І протестуй цю
програму три рази, змінивши елементи.
Реалізація.
В
алгоритмі використовується тип даних: множини чисел
A={9, 8,7,6,5}
print("Множина
A=",A, type(A))
B={1,9, 8,7,5,6}
print("Множина
B=",B, type(B))
C1=A<B
print("Чи
вірне таке відношення: C1=А<B:",C1, type(C1))
C2=B<A
print("Чи
вірне таке відношення: C2=B<A:",C2, type(C2))
D1=A>B
print("Чи
вірне таке відношення: D1=А>B:",D1, type(D1))
D2=B>A
print("Чи
вірне таке відношення: D2=B>A:",D2, type(D2))
G=A>=B
print("Чи
вірне таке відношення: G=А>=B:",G, type(G))
Q=B<=A
print("Чи
вірне таке відношення: Q=B<=A:",Q, type(Q))
H=A==B
print("Чи
вірне таке відношення: H=A==B:",H, type(H))
F=H in
{12,11,10,9, 8,7,}
print("Чи
вірне таке відношення: F=H in",F, type(F))
Завдання
5. Створити алгоритм пошуку парних
двохцифрових чисел, які діляться націло на 3 в середовищі програмування Thonny. І протестуй цю програму три рази, змінивши
елементи.
Реалізація.
В
алгоритмі використовується тип даних: множини чисел
n=100
A={s for s in range(10, n)}
print("Множина A=",A, type(A))
B={s for s in A if s%2==0}
print("Множина парних чисел B=",B, type(B))
C1={s for s in A if s%3==0}
print("Множина чисел, що кратні 3, C1=",C1, type(C1))
C2= {s for s in A if s%6!=0}
print("Множина чисел, що не кратні 6, C2=",C2, type(C2))
D1=C1|C2
print("Множина D1=C1|C2",D1, type(D1))
D2=C1&C2
print("Множина D2=C1&C2",D2, type(D2))
Немає коментарів:
Дописати коментар