Главная страница
Навигация по странице:

  • =ЕСЛИ(A1 ЕСЛИ(Условие; значение если верно; если неверно)=ОСТАТ(L8;2) ОСТАТ(число; делитель)=МАКС(B2:D8)

  • =НАИБОЛЬШИЙ(B2:D8;3) - (вернет 3й по большевизне)

  • Шпора. шпора 2022 УМСКУЛ. Программа решения конкретного 5го задания


    Скачать 0.51 Mb.
    НазваниеПрограмма решения конкретного 5го задания
    АнкорШпора
    Дата30.12.2022
    Размер0.51 Mb.
    Формат файлаpdf
    Имя файлашпора 2022 УМСКУЛ.pdf
    ТипПрограмма
    #869259

    Задание №2
    for x in 0,1: for y in 0, 1: for z in 0, 1: for w in 0, 1: if (здесь должны быть функция из задания): print(x,y,z,w)
    В ПРОГЕ: or and
    <=
    == not()
    В ЗАДАЧАХ




    ¯
    Задание №5
    программа решения конкретного 5-го задания,
    реализован вариант с дублированием цифры и
    добавлением остатка от деления суммы цифр на 2
    вместо 97 - пишите нужное вам значение
    def task(N): n_bin = bin(N)[2:] n_bin = n_bin + n_bin[-1] n_bin += str(sum([int(i) for i in n_bin]) % 2) return int(n_bin,2) for i in range(1, 1000): if task(i) > 97: print(task(i)) break
    Задание №6 перебор for i in range(1,1000): s = i n = 0 while s ≤ 375: s = s + 5 n = n + 2 if n == 64: print(i)
    Задание №22 перебор
    Если выходят числа очень близкие к концу диапазона(1 или 1000, увеличьте диапазон)
    for i in range(1,1000): x = i x0 = x
    N = 0 while x > 0: d = x % 3
    N = 10 * N + d x = x // 3
    N += x0 if (N) ≥ (100000): print(i)
    Если выходят числа очень близкие к концу диапазона(1 или 1000, увеличьте диапазон)
    Задание №7 ФОРМУЛЫ
    V
    (изобр)
    =N
    (количество пикселей)
    * i
    (глубина цвета=обьем пикселя)
    V
    (размер файла)
    =N
    (кол-во волн)
    * F
    (частоту)
    * B
    (разрешения)
    * t
    (время)
    кол-во цветов в палитре = 2
    i(глубина цвета=обьем пикселя)
    кол-во уровней дискретизации = 2
    B(разрешение)
    1 БАЙТ = 8 БИТ
    1 Кбайт = 2 10
    байт = 2 13
    бит
    1 Мбайт = 2 10
    Кбайт = 2 20
    байт = 2 23
    бит
    Когда переводим в биты - умножаем
    Когда переводим из бит - делим
    Задание №8
    C повторами from itertools import product p = product('ШКОЛА', repeat=3) n = 0 for x in p: if x.count('К') == 1: n += 1 print(n) без повторов - перестановки from itertools import permutations p = permutations('ШКОЛА', r=3) n = 0 for x in p: if x.count('К') == 1: n += 1 print(n)
    ЭКСЕЛЬ
    =ЕСЛИ(A1
    ЕСЛИ(Условие; значение если верно; если неверно)
    =ОСТАТ(L8;2)
    ОСТАТ(число; делитель)
    =МАКС(B2:D8)
    МАКС(число области1:число области2)
    =СРЗНАЧ(B2:D8)
    СРЗНЧ(число области1:число области2)
    =СУММ(B2:D8)
    СУММ(число области1:число области2)
    =МИН(B2:D8)
    МИН(число области1:число области2)
    Задание №12
    b = "1"*82 while "11111" in b or "888" in b: if "11111" in b: b = b.replace("11111","88",1) elif "888" in b: b = b.replace("888", "8", 1) print(b)
    "888" in b - проверка на наличие в строке b = b.replace("888", "8", 1) - замена в строке b = "1"*82 - создание строки
    * - повторяет строку столько раз, на сколько ее умножить
    Задание №14
    c = 0 s = 7*512**120 - 6*64**100 - 255 while s > 0 : if s % 8 == 0: c+=1 s = s // 8 print(c) s % 8 - возвращает последнюю цифру числа в 8-ой сс s = s // 8 - удаляет последнюю цифру числа в 8-ой сс
    Если нужна другая сс, просто везде поменяйте 8 на нужную
    Задание №15 - ДЕЛ
    def Del(x, A): return x % A == 0 for A in range(1, 1000): podoschelA = True for x in range(1, 1000): if (ваша функция) == False: podoschelA = False break if podoschelA == True: print(A)
    Задание №15 - КОНЬЮНКЦИЯ
    Задание №15 - ГРАФИКИ
    for A in range(1, 1000): podoschelA = True for x in range(0, 1000): if (ваша функция) == False: podoschelA = False break if podoschelA == True: print(A) for A in range(1,1000): podoschelA = True for x in range(1,1000): for y in range(1,1000): if (ваша функция) == False: podoschelA = False break if podoschelA == False: break if podoschelA == True: print(A)
    НАИБОЛЬШИЙ(число области1:число области2; номер)
    =НАИБОЛЬШИЙ(B2:D8;3)
    - (вернет 3й по большевизне)
    СПИСКИ
    a = [] - создание списка a.append(n) - добавление элемента n в список len(а) - длина списка max(a) - максимальный элемент min(a) - минимальный элемент sum(a) - сумма списка a.sort() - сортировка списка в порядке возрастания a.sort(reverse=True) - сортировка списка в порядке убывания a.count(n) - количество n в списке
    СТРОКИ
    a = ‘’ - создание строки len(а) - длина строки a.count(«n») - количество n в строки
    «hi» in a - проверка наличия подстроки в строке a.split(«AB») - разделение на список строк по AB
    «».join(b) - объединение списка в строку a = a.replace("88", "8", 1) - замена
    «A» < «B» - строки можно сравнивать в алфавитно порядке
    Задание №15 - отрезки - наиб
    Q = list(range(12, 33))
    P = list(range(4, 14))
    A = list(range(1, 1000)) for x in range(1, 1000): if not(((x in A) ≤ (x in P)) or (x in Q)):
    A.remove(x) print(A)
    Задание №15 - отрезки - наим
    Q = list(range(12, 33))
    P = list(range(4, 14))
    A = [] for x in range(1, 1000): if not(((x in A) ≤ (x in P)) or (x in Q)):
    A.append(x) print(A)
    ЗАДАНИЕ №18
    ПОИСК МАКС =
    ИЗНАЧАЛЬНОЕ ЗНАЧЕНИЕ +
    МАКС(ЗНАЧЕНИЕ ИЗ ТАБЛИЦЫ СУММ СПРАВА,
    ЗНАЧЕНИЕ ИЗ ТАБЛИЦЫ СУММ СНИЗУ)
    ПОИСК МИН =
    ИЗНАЧАЛЬНОЕ ЗНАЧЕНИЕ +
    МИН(ЗНАЧЕНИЕ ИЗ ТАБЛИЦЫ СУММ СПРАВА,
    ЗНАЧЕНИЕ ИЗ ТАБЛИЦЫ СУММ СНИЗУ)
    Случай, когда робот ходит вниз и вправо
    Удаляйте варианты, которые ведут в стенки

    Задание №25
    Задание №25
    Задание №27 на двойки мин сумма
    Задание №27 на двойки макс сумма
    Задание №27 на тройки макс сумма + одно число
    Задача на поиск сумм наиб и наим делителей count = 0 n = 452022 while count != 5:
    F = 0 for i in range(2, int(n**(1/2)+1)): if n // i == i: continue if n % i == 0:
    F = n//i + i break if F % 7 == 3: print(n, F) count+=1 n+=1
    Функция поиска простых чисел
    Задание №25
    def isProst(x): prost = True for i in range(2, int(x**0.5)+1): if x % i == 0: prost = False return prost
    В 25 номере идем до корня включительно -
    Но проверяем отдельно корень, нельзя его добавлять дважды.
    count = 0 n = 452022 while count != 5:
    F = 0 for i in range(2, int(n**(1/2)+1)): if n % i == 0:
    If isProst(n//i) == True: print(n, n//i) count+=1 break n+=1
    Задача поиска простого наиб делителя
    Задание №25
    Если n - это число i - это делитель n//i - противоположный делитель
    Задача поиска суммы простых делителей count = 0 n = 452022 while count != 5:
    S = 0 for i in range(2, int(n**(1/2)+1)): if i*i == n: if isProst(i) == True:
    S += i elif n % i == 0: if isProst(i) == True:
    S += i if isProst(n//i) == True:
    S += n//i if S % 7 == 2: print(n, S) count+=1 n+=1
    Задание №27 на наиб сумму подпоследовательности кратную 101
    Задание №27 на тройки макс сумма + два числа f = open("27.txt") n = int(f.readline()) sum_final = 0 min_razn = 100000001 for i in range(n): a,b,c = map(int, f.readline().split()) s = [a,b,c] s.sort() sum_final += s[2] + s[1] if (s[2]-s[0])Задание №27 на мусорки,
    Первый принт - мин затраты
    Вторй принт - какой бачок f = open("27-01b.txt") s, cnt = 0,0 n,k = map(int, f.readline().split()) res = [] maxs = [0] + [10000001]*(k-1) for i in range(1,n+1): x = int(f.readline()) s += x if x < 0: x0 = abs(x) while x0 ≥ 7: x0 //= 7 if x0 == 5: cnt += 1 if maxs[cnt % k] != 10000001: res.append(s - maxs[cnt % k]) if s < maxs[cnt % k]: maxs[cnt % k] = s print(max(res))
    f = open("27-B_n.txt") n = int(f.readline()) a = [] for s in f: a.append(int(s)) ans = [] ans1, r, l = 0, 0, 0 for i in range(1, n//2): ans1 += (a[i]*i + a[-i]*i) r += a[i] l += a[-i] ans1 += a[n//2]*(n//2) ans.append(ans1) for i in range(1, n): ans.append(ans[i-1] - r + l + a[i-1] - a[(i+n//2 - 1)%n]) r = r - a[i] + a[(i+n//2 - 1)%n] l = l + a[i-1] - a[(i+n//2)%n] print(min(ans)) print(ans.index(min(ans))+1)
    Задание №27 на наиб сумму подпоследовательности c кол-вом особых чисел(в 7ой начинаются на 5) кратным k
    Задание №27 на кол-во сумм подпоследовательностей кратных 999
    f = open("27_01_A.txt") n = int(f.readline()) a = [] result, current = 0, 0 k = 999 sum_ost = [0]*(k) for i in range(len(a)): x = int(f.readline()) current += x if current % k == 0: result += 1 if sum_ost[current % k] != 10000001: result += sum_ost[current % k] sum_ost[current % k] += 1 print(result)
    ЗАДАНИЕ №19-21
    Шаги +4; *2, победа
    Задание №23
    def rec(start, end): if start < end: return 0 if start == end: return 1 return rec(start-2,end) + rec(start-5,end) print(rec(23,2))
    def rec(start, end): if start > end or start == 6: return 0 if start == end: return 1 return rec(start+2,end) + rec(start*2,end) print(rec(2,20))
    Здесь команды +2, *2, не проходя через 6
    Здесь команды -2, -5
    Задание №25
    Задание №25
    Нечетное число делителей - у числа извлекается корень
    Пример задачи на 3 делителя a = [] for i in range(108765, 280723+1): b = [] for j in range(1, int(I**(1/2)+1)): if j*j == i: b.append(j) elif i % j == 0: b.append(j) b.append(I//j) if len(b) > 3: break if len(b) == 3: a.append(b) print(a)
    Пример задачи на маску 123*5 до 1000000
    Кратную 42
    cnt = 0 for x in range(1235, 123995+1): if x % 42 == 0 and "123" == str(x)[:3] \ and "5" in str(x)[3:]: print(x, x // 42)
    Пример задачи на маску 12345?7?8 до 10^9
    Кратную 42
    cnt = 0 for x in range(123450708, 123459708+1): if x % 42 == 0 and "12345" == str(x)[:5] \ and "7" == str(x)[-3] and "8" == str(x)[-1]: print(x, x // 42)
    Пример задачи на маску 12345*7? до 10^9
    Кратную 42
    cnt = 0 for x in range(1234570, 123459979+1): if x % 42 == 0 and "12345" == str(x)[:5] \ and "7" == str(x)[-2]: print(x, x // 42)
    def WIN1(x,S): return (x + 4 + S ≥ 51) or (x*2 + S ≥ 51) or (x + 2*S ≥ 51) def LOSS1(x, S): return (not(WIN1(x, S))) and WIN1(x+4, S) and WIN1(S +4, x) and WIN1(x*2, S) and WIN1(x, S*2) def WIN2(x, S): return (LOSS1(x+4, S) or LOSS1(S +4, x) or LOSS1(x*2, S) or LOSS1(x, S*2)) def LOSS2(x, S): return ((WIN1(x+4, S) or WIN2(x+4, S)) \ and (WIN1(x, S+4) or WIN2(x, S+4)) and (WIN1(x*2, S) or WIN2(x*2, S)) and (WIN1(x, S*2) \ or WIN2(x, S*2)) and (WIN2(x+4, S) or WIN2(S +4, x) or WIN2(x*2, S) or WIN2(x, S*2)) x = 5 for s in range(1, 51): if WIN1(x+4, S) or WIN1(S +4, x) \ or WIN1(x*2, S) or WIN1(x, S*2): print(s) if WIN2(x,s): print(s) if LOSS2(x, s): print(s)
    Задание №24
    Cколько пар идущих подряд AB или
    AC?
    f = open("24.txt") s = f.readline() s = s.replace("AC", "AB") for i in range(1, 1000): ss = "AB" * i if ss in s: print(i)
    Наибольшая строка без YZXZ
    f = open("24.txt") s = f.readline() a = s.split("YZXZ") print(len(max(a, key=len))+6)
    #не забудьте проверить индекс строки print(a.index(max(a, key=len)))

    Задание №17 на доп поиск f = open("17.txt") a = [] min26 = 10000000 for s in f: a.append(int(s)) if int(s) % 26 == 0 and int(s) < min26: min26 = int(s) sum_par = [] for i in range(len(a)-1): if (a[i] % min26 == 0) \ or (a[i+1] % min26 == 0): sum_par.append(a[i] + a[i+1]) print(len(sum_par), max(sum_par))
    Задание №26 саженцы театр
    Задание №24 на разные сосед.символы f = open("26.txt") n = int(f.readline()) a = [] for i in range(n): a.append(list(map(int, f.readline().split()))) a.sort() b = [] for i in range(n-1): if (a[i][0] == a[i+1][0]) \ and (a[i][1] + 18 == a[i+1][1]): b.append([a[i][0], a[i][1]+1]) print(b)
    f = open("24.txt") m = 1 mm = 1 s = f.readline() for i in range(len(s)-1): if s[i] != s[i+1]: m += 1 mm = max(m, mm) else: m = 1 print(mm)
    Задание №26 грузы f = open("26.txt") s, n = map(int, f.readline().split()) a = [] for i in range(n): a.append(int(f.readline())) a.sort() b = [] for i in range(n): if sum(b) + a[i] ≤ s: b.append(a[i]) elif sum(b) - b[-1] + a[i] ≤ s: del b[-1] b.append(a[i]) else: break print(len(b), max(b))
    Вычитать или добавлять должны на +1 от кол-ва свободных мест


    написать администратору сайта