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

  • Сколько различных слов может составить Настя

  • Количество 0

  • ШПОРААААА ИНФОРМАТКИА. Return F(n1)3F(n3)2 if n in range(100000,201)


    Скачать 30.31 Kb.
    НазваниеReturn F(n1)3F(n3)2 if n in range(100000,201)
    Дата03.10.2022
    Размер30.31 Kb.
    Формат файлаdocx
    Имя файлаШПОРААААА ИНФОРМАТКИА.docx
    ТипДокументы
    #712130

    16 хард

    '''

    def F(n):

    if n < (-100000):

    return 1

    if n > 10:

    return F(n-1)+3*F(n-3)+2

    if n in range(-100000,20+1):

    return (-F(n-1))

    print(F(20))
    '''

    cache = {}

    def f(n):

    if n not in cache:

    if n<-100000:

    cache[n] = 1

    elif n>10:

    cache[n] = f(n-1)+3*f(n-3)+2

    else:

    cache[n] = -f(n-1)

    return cache[n]

    for i in range(-100000,20+1):

    f(i)

    print(f(20))
    22

    '''

    a = 10

    b = 0

    x = int(input())

    while x > 0:

    y = x % 10

    x = x // 10

    if y < a:

    a = y

    if y > b:

    b = y

    print(a)

    print(b)

    ‘’’
    for i in range(1,9999):

    a = 10

    b = 0

    x = i

    while x > 0:

    y = x % 10

    x = x // 10

    if y < a:

    a = y

    if y > b:

    b = y

    if a==5 and b==7 and i>1000:

    print(i)

    #5 7 четыреххзнач максимальн

    23

    def otrezok(start,x):

    if start>x or x==15:

    return 0

    if x==start:

    return 1

    K=otrezok(start, x-1)

    K+=otrezok(start, x-2)

    if x%3==0:

    K+=otrezok(start, x//3)

    return K

    print(otrezok(2,11)*otrezok(11,16))

    2

    for x in range(2):

    for x in range(2):

    for x in range(2):

    for x in range(2):

    f = ((x <= y )== (z <= w) or (x and w))

    if f == false:

    print(x,y,z,w)

    25

    '''

    среди целых чисел (2532000,2532160) ищет простые числа.

    найдите все простые числа которые заканчиваются на цифру 7. выведите

    их в порядке возрастания, слева от каждого числа введите его номер по порядку

    '''

    def prime(x):

    sq = int(x**0.5)

    for i in range(2,sq+1):

    if x%i==0:

    return False

    return True
    d = [x for x in range(2532000,2532161) if prime(x) and x%10 ==7]

    #x из списка если x такой-то

    for j in range(len(d)):

    print(j+1, d[j])

    ;;;;
    '''

    напишите которая ищет среди() число имеющее максимальное

    количество различ натур дели,если таких нескоько найдите минимальное

    из них. на экран введите количество делителей такого числа и само число

    '''

    c=0

    for x in range(541,1235):

    b = 0

    for i in range(1,x+1):

    if x%i==0:

    b+=1

    if b>c:

    num = i

    c = b

    print(c,num)

    5

    )'''
    #(min N больше 77)

    def f(R):

    a = bin(R)[2:]

    if a.count('1')%2==0:

    return 1

    return 0

    R = 77+1

    while not f(R):

    R+=2

    print(R//4)

    '''

    #(min R больше 102)

    '''

    for n in range(1, 43+1):

    if n%2==0:

    r=str(bin(n))+'01'

    else:

    r=str(bin(n))+'10'

    if int(r,2)>43:

    print(int(r,2))

    break
    6,22

    x=Input => for x in range(1,10000000):

    + => t=x

    Print(a) => if a==…

    15.

    flag=0

    for A in range(-100,501):

    flag=0

    for x in range(1,501):

    for y in range(1,501):

    if ((x*y<3*A) or (x>=22) or (x<7*y))==False:

    flag=1

    break

    if flag==1:

    break

    if flag==0:

    print(A)

    break

    flag=0

    for A in range(0,1000):

    flag=0

    for x in range(0,1000):

    if ((x&29!=0) <= ((x&17==0) <= (x&A!=0)))==False:

    flag=1

    break

    if flag==0:

    print(A)

    break

    DEL

    flag=0

    for A in range(1, 1001):

    flag=0

    for x in range(1, 1001):

    if ((((x%36==0) and (x%42==0)) <= (x%A==0)) and (A*(A-25)<25*(A+200))) == False:

    flag=1

    break

    if flag==0:

    print(A)

    ОТРЕЗКИ: БОЛЬШЕЕ ВСЕГДА СРАВНИТЬ И САМОЕ БОЛЬШЕЕ
    МЕНЬШЕЕ ЕСЛИ ОДНО, ТО ВЫЧЕСТЬ, ЕСЛИ ДВА ТО ОБЪЕДИНИТЬ КРАЯ И ВЫЧЕСТЬ.
    НАИМЕНЬШЕЕ

    P = [ i / 10 for i in range(300,451)]

    Q = [ i / 10 for i in range(400,551)]

    def f(x, A):

    return ((x not in A) <= ( x not in P)) and ((( x in Q) <= (x in A)))

    A = set()

    for x in [ i / 10 for i in range(10, 601)]:

    if not f(x, A):

    A.add(x)

    print(sorted(A))

    # [30, 55]

    print('---------')

    print('55-30 = ', 55-30)

    ----------------

    НАИБОЛЬШЕЕ

    P = [ i / 10 for i in range(300,451)]

    Q = [ i / 10 for i in range(400,551)]

    def f(x, A):

    return ((x not in A) <= ( x not in P)) and ((( x in Q) <= (x in A)))

    A = set()

    for x in [ i / 10 for i in range(10, 601)]:

    if not f(x, A):

    A.add(x)

    print(sorted(A))

    # [30, 55]

    print('---------')

    print('55-30 = ', 55-30)

    P = {2,4,6,8,10,12}

    Q = {3,6,9,12,15}

    def f(x, A):

    return (x in P) <= ((( x in Q) and (x not in A)) <= (x not in P))

    A = set()

    for x in [ i / 10 for i in range(10, 501)]:

    if not f(x, A):

    A.add(x)

    print(sorted(A))

    print(6+12)

    --

    Наибольшее кол-во

    P ={2,4,6,8,10,12,14,16,18,20}

    Q ={3,6,9,12,15,18,21,24,27,30}

    def f(x,A):

    return (((x in A) <= (x in P)) and ((x in Q) <= (x not in A) ))

    A = set([i/10 for i in range(20,401)])

    for x in [i/10 for i in range(20,401)]:

    if not f(x,A):

    A.remove(x)

    print(sorted(A))

    [2.0, 4.0, 8.0, 10.0, 14.0, 16.0, 20.0]

    Ответ== 7
    8

    Сколько таких слов..
    from itertools import product

    k=0

    for x in product('ЕГЭ', repeat=5):

    s = ''.join(x)

    if s[0] != 'Г':

    k+=1

    print(k)

    ////

    Запишите слово, которое стоит на 150-м месте от начала списка.

    '''

    import itertools

    d=0

    for x in itertools.product('akpy', repeat=5):

    s = ''.join(x)

    d+=1

    if d>151:

    break

    print(d,s)

    ////

    Укажите номер слова УАУАУ.

    '''
    import itertools

    d=0

    for x in itertools.product('АОУ', repeat=5):

    s = ''.join(x)

    d+=1

    if s=='УАУАУ':

    print(d)

    ///

    Укажите номер первого слова, которое начинается с буквы У.

    '''

    import itertools

    d=0

    for x in itertools.product('АОУ', repeat=5):

    s = ''.join(x)

    d+=1

    if s[0]=='У':

    print(d,s)

    ///

    . Сколько слов длины 5, начинающихся с согласной буквы и

    заканчивающихся гласной буквой, можно составить

    из букв К, У, М, А? Каждая буква может входить в слово несколько раз.

    '''

    import itertools

    k=0

    for x in itertools.product('KYMA', repeat=5):

    s = ''.join(x)

    if (s[0]!='A' or s[0]!='Y') and (s[4]=='A' or s[4]=='A'):

    k+=1

    print(k)

    ///

    Каждую букву

    нужно использовать ровно 1 раз, при этом

    код не может начинаться с буквы Ч и не может содержать


    сочетания ИАУ. Сколько различных кодов может составить Вася?

    '''

    import itertools

    k=0

    for x in itertools.permutations('КУПЧИХА'):

    s = ''.join(x)

    if s[0]!='Ч' and 'ИАУ' not in s:

    k+=1

    print(k)

    ///

    Настя составляет 6-буквенные слова, в которых

    есть только буквы Д, Ж, О, Б, С,

    причём буквы Д, О, С встречаются ровно по одному разу.

    Буква Ж встречается не более 2 раз,

    а буква Б может встречаться любое количество раз

    или не встречаться вовсе. Словом считается любая допустимая

    последовательность букв, не обязательно осмысленная.


    Сколько различных слов может составить Настя?

    '''

    import itertools

    k=0

    for x in itertools.product('джобс', repeat=6):

    s = ''.join(x)

    if s.count('д')==1 and s.count('о')==1 and s.count('с')==1 and s.count('ж')<=2 :

    k+=1

    print(k)

    17

    '''Рассматривается множество целых чисел, принадлежащих числовому отрезку [1388; 63252],

    которые не делятся на 12 и обязательно имеют в своей записи хотя бы одну из цифр 7 или 4.

    Найдите количество таких чисел и максимальное из них.

    В ответе запишите два целых числа: сначала количество, затем максимальное число.

    '''

    a = [ x for x in range(1388,63253) if (x%12!=0) and (str(x).count('7')>=1 or str(x).count('4')>=1)]

    print(len(a), max(a))

    19-21

    def f(x, y, p):

    if x+y>=69 or p>5:

    return p==3 or p==5

    if p%2==0:

    return f(x+1, y, p+1) or f(x, y+1, p+1) or f(x*2, y, p+1) or f(x, y*3, p+1)

    if p%2!=0:

    return f(x+1, y, p+1) and f(x, y+1, p+1) and f(x*2, y, p+1) and f(x, y*3, p+1)

    for s in range(1, 58+1):

    if f(10, s, 1):

    print(s)

    19

    def f(x,p):

    if x>=68 or p>3:

    return p==3

    return f(x+1,p+1) or f(x+4,p+1) or f(x*5,p+1)

    for s in range(1,67+1):

    if f(s,1):

    print(s)

    break

    20

    def f(x,p):

    if x>=68 or p>4:

    return p==4

    if p%2!=0:

    return f(x+1,p+1) or f(x+4,p+1) or f(x*5,p+1)

    if p%2==0:

    return f(x+1,p+1) and f(x+4,p+1) and f(x*5,p+1)

    for s in range(1,67+1):

    if f(s,1):

    print(s)

    21

    def f(x,p):

    if x>=68 or p>5:

    return p==3 or p==5

    if p%2==0:

    return f(x+1,p+1) or f(x+4,p+1) or f(x*5,p+1)

    if p%2!=0:

    return f(x+1,p+1) and f(x+4,p+1) and f(x*5,p+1)

    for s in range(1,67+1):

    if f(s,1):

    print(s)

    print('-------исключаем: ')

    def f(x,p):

    if x>=68 or p>3:

    return p==3

    if p%2==0:

    return f(x+1,p+1) or f(x+4,p+1) or f(x*5,p+1)

    if p%2!=0:

    return f(x+1,p+1) and f(x+4,p+1) and f(x*5,p+1)

    for s in range(1,67+1):

    if f(s,1):

    print(s)

    12

    Если просят найти макс длину, то переставлять числа местами,

    если можно!

    Какая строка получится в результате применения приведённой ниже

    программы к строке, состоящей из 68 идущих подряд цифр 8? В

    ответе запишите полученную строку.

    НАЧАЛО

    ПОКА нашлось (222) ИЛИ нашлось (888)

    ЕСЛИ нашлось (222)

    ТО заменить (222, 8)

    ИНАЧЕ заменить (888, 2)

    КОНЕЦ ЕСЛИ

    КОНЕЦ ПОКА
    n = '8'*68

    while '222' in n or '888' in n :

    if '222' in n:

    n = n.replace('222','8',1)

    else:

    '22' in n:

    n = n.replace('888','2',1)

    print(n)

    Значение арифметического выражения: 125 + 253+59 – записали в системе счисления с основанием 5.

    #Количество 0 ?
    n = 125 + 25 ** 3 + 5 ** 9

    k0 = 0

    while n > 0:

    if n % 5 == 0:

    k0 += 1

    n = n // 5

    print(k0)
    #Для суммы цифр
    n = 125 + 25 ** 3 + 5 ** 9

    s = 0

    while n > 0:

    s += n % 5

    n = n // 5

    print(s)

    25

    Больше500000. Делитель оканч на 8 не равен самому и не равен 8

    k=0

    for x in range(500001, 500099):

    sq = int(x**0.5)

    d = []

    if sq**2==x:

    d+=[sq]

    for i in range(1,sq):

    if x%i==0:

    d+=[i]

    d+=[x//i]

    d=[i for i in d if i%10==8 and i!=8 and i!=x]

    if len(d)>0:#важно

    print(x, min(d))

    k+=1

    if k==5:

    break

    ///

    for x in range(174457,174505+1):

    sq = int(x**0.5)

    d = []

    if sq**2==x:

    continue

    for i in range(2,sq):

    if x%i==0:

    d+=[i, x//i]

    if len(d)>2:

    break

    d.sort()

    if len(d)==2:

    print(d)
    print(sorted(d))

    a = [x for x in range (5,10)]

    #for k in range(len(a)):

    #print(k+1, a[k]) #порядковый номер делителя
    ///

    '''

    k=0

    def prime(x):

    sq= int(x**0.5)

    for i in range(2,sq+1):

    if x%i==0:

    return 0

    return 1

    x0=5

    xm=9

    d = [x for x in range(x0,xm+1) if prime(x)]

    for i in range(len(d)):

    print(((d[i])-x0+1), d[i]) #порядковый номер в последовательности(в отрезке)

    ///

    ПРОСТОТА
    def prime(x):

    sq = int(x**0.5)

    for i in range(2,sq+1):

    if x%i==0:

    return False

    return True
    СУММА ЦИФР
    def sums(x):

    s=0

    while x>0:

    s+=x%10

    x=x//10

    return s
    СУММА МАКС И МИН
    def maxmin(x):

    sq = int(x**0.5)

    for i in range(2,sq+1):

    if x%i==0:

    return i+ x//i

    return False

    ///

    k=1

    def maxmin(x):

    sq = int(x**0.5)

    for i in range(2,sq+1):

    if x%i==0:

    return i+ x//i

    return False
    for x in range(250201, 350389):

    if maxmin(x)%123==17:

    k+=1

    print(x, maxmin(x))

    if k>5:

    break

    ///

    больше 350300. сумма всех различных дел числа, отличных от 1 и самого числа кратна 13/ если делителей нет, то сумма равна нулю

    k=1

    for x in range(350301,450201):

    sq = int(x**0.5)

    d = []

    if sq**2==x:

    d+=[sq]

    for i in range(2, sq+1):

    if x%i==0:

    d+=[i,x//i]

    d.sort()

    if sum(d)!=0 and sum(d)%13==0:

    print(x, sum(d)//13)

    k+=1

    if k>6

    :

    break

    24

    определить макс подряд идущих символов, среди которых нет G, W, P

    f = open('24.txt')

    s = freadline()

    for i in range(0, len(s)):

    if s[i] not in 'GWP':

    curr+=1

    m=max(curr,m)

    else:

    curr = 0

    print(m)

    ///

    сколько раз встречается комбинация "КОТ"

    f = open('24.txt')

    s = freadline()
    print(s.count('KOT'))

    ///

    какое кол-во строк, в которых буква 's' встречается солько же, сколько 'х'

    f = open('24.txt')

    k = 0

    for s in f:

    if s.count('x')==s.count('s'):

    k+=1
    print(k)

    ////

    найти макс длину состоящей из символов 'с'

    f = open('24.txt')

    s= f.readline()+'*'

    c=0

    m=0

    for i in range(0, len(s)):

    if s[i]=='C':

    c+=1

    elif c>0:

    m = max(c,m)

    c=0

    print(m)

    ///

    найти макс длину подцепочки, состоящ из одинак символов. выведите символ, из которого состоит цепочка, а затем длину

    f = open('24.txt')

    s= f.readline()

    c=1

    m=1

    ch = s[0]

    for i in range(1, len(s)):

    if s[i]==s[i-1]:

    c+=1

    if c>m:

    m = c

    ch =s[i]

    else:

    c=1

    print(ch, m)

    ///

    найти макс длину подстрочки, в которой символы a и d не стоят рядом.

    f = open('24.txt')

    s = f.readline()

    s = s.replace('ad', 'a d')#там пробел

    s = s.replace('da', 'd a')#там пробел

    m=0

    for i in s.split(' '):#там пробел

    m=max(m,len(l))

    print(m)


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