Загрузка данных
# ==========================================
# ЗАДАНИЕ №2: Логика
# ==========================================
# В прогу -> В условиях: or (∨), and (∧), <= (→), == (≡), not (¬)
print('w x y z')
for w in range (2):
for x in range (2):
for y in range (2):
for z in range (2):
if not((not(x<=y)) or (z<=w) or (not(z))):
print(w, x, y, z)
# ==========================================
# ЗАДАНИЕ №5: Алгоритмы и СС
# ==========================================
# Перевод в 2СС
for n in range (1,1000):
r=bin(n)[2:]
if r.count('1')%2==0:
r='10'+r[2:]+'0'
else:
r='11'+r[2:]+'1'
r=int(r,2)
if r>19:
print(n)
# Перевод в 4СС (с суммой цифр)
def f_task5(n):
r=''
while n>0:
r = str(n%4)+r
n = n//4
return r
t_task5=[]
for n in range (1,100000):
r = f_task5(n)
if (r.count('1') + (r.count('2') * 2) + (r.count('3') * 3)) % 2 == 0:
r = '31'+r+'02'
else:
r = '1'+r+f_task5(n%3*7)
r = int(r,4)
if r<4528:
t_task5.append(n)
if t_task5: print(max(t_task5))
# ==========================================
# ЗАДАНИЕ №6: Черепашка
# ==========================================
from turtle import *
def run_turtle():
k=20
tracer (0)
screensize (2000, 2000)
# Здесь тело цикла для отрисовки фигуры (fd, rt и т.д.)
for x in range (-100,100):
for y in range (-100,100) :
setpos (x*k, y*k)
dot ()
done()
# ==========================================
# ЗАДАНИЕ №7 & №11: Формулы
# ==========================================
"""
№7:
- Фото: I = x * y * i (байт = 8 бит)
- Звук: I = k * u * i * t
- Передача: I = v * t
- Варианты: N <= 2^i
№11:
- V = N * i (размер пароля)
- Мощность: N = 2^i
- Если i=7, минимальная мощность для 2^6+1
"""
# ==========================================
# ЗАДАНИЕ №8: Комбинаторика
# ==========================================
from itertools import product, permutations
k8=0
# Если цифры/буквы повторяются: product, если нет: permutations
for i in product ('0123455678', repeat=5):
x=''.join(i)
if x[0]!='0' and x.count('0')==1:
t = x.index('0')
if x[t-1] in '2468' and (t==4 or x[t+1] in '2468'):
k8+=1
print(f"Задание 8: {k8}")
# ==========================================
# ЗАДАНИЕ №9: Файлы
# ==========================================
# f9 = open('99.txt')
# k9=0
# for line in f9:
# a=[int(i) for i in line.split()]
# a1=[int(i) for i in a if a.count(i)==3]
# a2=[int(i) for i in a if a.count(i)==1]
# if ((len(a1)==3 and len(a2)==4) and (a[0]>a[1]>a[2]>a[3]>a[4]>a[5]>a[6])) or \
# ((len(a1)!=3 and len(a2)!=4) and (a[0]<a[1]<a[2]<a[3]<a[4]<a[5]<a[6])):
# k9+=1
# ==========================================
# ЗАДАНИЕ №13: Сети
# ==========================================
from ipaddress import *
# net = ip_network('192.168.12.207/255.192.0.0', 0)
# for ip in net:
# s = bin(int(ip))[2:]
# if s.count('1') == s.count('0'):
# pass # твой код здесь
# ==========================================
# ЗАДАНИЕ №14: Системы счисления
# ==========================================
# Перевод в 10СС
for x_14 in '0123456789abcdefghijk':
a14=int('82934'+x_14+'2',21)+int('2924'+x_14+x_14+'7',21)+int('67564'+x_14+'8',21)
if a14%20==0:
print(f"Задание 14: {a14//20}")
# ==========================================
# ЗАДАНИЕ №15: Отрезки, ДЕЛ, Графики
# ==========================================
# Пример на ДЕЛ (если отрицание ДЕЛ, ставим != 0)
for a15 in range (1,900):
m15=1
for x15 in range (1,900):
if (((405%x15==0) <= (81%x15==0)) or (a15-x15>162))==0:
m15=0
break
if m15==1:
print(f"Задание 15 (a): {a15}")
# ==========================================
# ЗАДАНИЕ №16: Рекурсия
# ==========================================
import sys
from functools import lru_cache
sys.setrecursionlimit(10**6)
@lru_cache(None)
def g16(n):
if n<=9: return (3*n)
return g16(n-4)+2
def f16(n):
return g16(n-1)+g16(n-3)
# ==========================================
# ЗАДАНИЕ №17: Последовательности
# ==========================================
# f17 = open('17.txt')
# a17 = [int(i) for i in f17]
# al17 = [i for i in a17 if 9<i<100]
# res17 = []
# for i in range(len(a17)-1):
# if ((a17[i] in al17 and a17[i+1] not in al17) or (a17[i] not in al17 and a17[i+1] in al17)) \
# and ((a17[i]+a17[i+1]) % min(al17)==0):
# res17.append(a17[i]+a17[i+1])
# ==========================================
# ЗАДАНИЕ №19-21: Теория игр
# ==========================================
# Две кучи
def game(k1, k2, h):
if (k1+k2)>=68: return h%2==0
if h==0: return 0
# Возможные ходы
moves = [game(k1+1, k2, h-1), game(k1+k2, k2, h-1), game(k2+1, k1, h-1), game(k2+k1, k1, h-1)]
return any(moves) if (h-1)%2==0 else all(moves)
# Если Ваня выиграл после неудачного хода Пети: any вместо all в конце
# ==========================================
# ЗАДАНИЕ №23: Динамика (пути)
# ==========================================
def f23(a, b):
if a > b or a == 8: return 0 # Не идем через 8
if a == b: return 1
return f23(a+1, b) + f23(a+2, b) + f23(a*2, b)
print(f"Задание 23: {f23(3,14) * f23(14,18)}") # Обязательно через 14