Рейтинг  

Яндекс.Метрика
Яндекс цитирования
 

   

Статистика  

Пользователи
7
Материалы
575
Кол-во просмотров материалов
2727526
   
Название операции Операция в формуле Операция в Python с числовыми переменными Операция в Python со множествами
инверсия, отрицание ¬ not() not()
импликация, следование <=
конъюнкция, поразрядная конъюнкция /\      & & intersection()
дизъюнкция, поразрядная дизъюнкция \/      + | union()
тождество == ==



  1. Порядок выполнения логических операций:

    1. ()   действия в скобках
    2. not   отрицание (НЕ)
    3. and  логическое умножение (И)
    4. or   логическое сложение (ИЛИ) и операция "исключающее ИЛИ"
    5. <=   импликация (следование)
    6. ==   эквивалентность
  2. Порядок выполнения операций в Python:

    1. Возведение в степень (**).
    2. Унарный минус (-). Используется для получения, например, противоположного числа.
    3. Умножение, деление (* / % //).
    4. Сложение и вычитание (+ -).
    5. Оператор вхождения/принадлежности (in)
    6. Операции сравнения (<= < > >=)
    7. Операции равенства (== !=)
    8. Операции присваивания (=)
    9. Логические операции (not or and)


ITERTOOLS комбинаторика на Python решаем 8-е задание без труда
alphabet = "ТИМАШЕВСК"
words = [''.join(iword) for iword in itertools.product(alphabet, repeat=6)]
# 6-ти-буквенные слова в списке из любого набора букв


ЕГЭ по информатике. Функция product модуля itertools в задании 8


Тест функций product() и permutations():

from itertools import *

word = 'СПОРТЛОТО'
i = 0
for w in permutations(word):
    print(''.join(w))
    i += 1
    if i > 2:
        break
i = 0
for w in product(word, repeat=4):
    print(''.join(w))
    i += 1
    if i > 10:
        break


Счёт в 7-ой системе счисления через product():

from itertools import *

w = 3
for px in product('0123456', repeat=w):
    print(int(''.join(px)))


Счёт в любой (цифровой) системе счисления через product() ('обёрнуто' в функцию):

def anySS_count_print(ss, w):
    sdigits = ''.join([str(x) for x in range(ss)])
    for px in product(sdigits, repeat=w):
        r = str(int(''.join(px)))
        print(r)
    
anySS_count_print(7, 3)


Использование lru_cache() из functools при решении 16-ых задач с рекурсией (со вложенностью вызовов более 1000):

from functools import *

@lru_cache(None)

def f(n):
    if n == 0:
        return 0
    elif 1 <= n < 3:
        return 1
    elif n >= 3:
        return f(n - 1) + f(n - 2)
    
print(f(47))


Увеличение глубины рекурсии с помощью setrecursionlimit() из библиотеки sys при решении 16-ых задач (со вложенностью вызовов более 1000):

import sys, math

print(sys.getrecursionlimit()) # Узнать глубину рекурсии

sys.setrecursionlimit(2345) # Установить глубину рекурсии

with sys.recursionlimit(1500):
    print(math.fib(1000, 0))


Перевод числа в любую систему счисления в пределах 10:

def toSS(n, ss):
    res = ''
    while n > 0:
        d = str(n % ss)
        res = d + res
        n //= ss
    return res
    
n7 = 234532
s7 = toSS(n7, 7)
print(n7, s7)
print(int(s7, 7))



Библиотека re (функция re.fullmatch()) для решения заданий с масками/шаблонами. Подробное описание в статье: Регулярные выражения в Python (regex find match groups replace string)

Задача 22 - очерёдность процессов:

def f(i):
    if a[i][1] == 0: return a[i][0]
    else: return a[i][0] + max(f(j) for j in a[i][1:])

a = {}
for line in open('22-59.csv'):
    x = list(map(int, line.split(';')))
    a[x[0]] = x[1:] # x[0] - 1-ый столбец - номер процесса,
                     x[1:] - следующие столбцы - номера процессов от которых
                             зависит процесс в 1-ом столбце

print(max(f(i) for i in a.keys()))


   
   

Login Form