Задание 5 // КЕГЭ по информатике 2024

Поділитися
Вставка
  • Опубліковано 30 січ 2025

КОМЕНТАРІ • 43

  • @GameChanger___
    @GameChanger___ 9 місяців тому +8

    11:25 Нет особой необходимости два раза повторять одно и то же условие. Можно просто написать:
    if b.count('1')%2==0:
    b = b + '00'
    else:
    b = b + '10'

  • @prettty_kitty
    @prettty_kitty 6 місяців тому +1

    26:28 можно через лямбда-функцию еще написать: sum( map( lambda x: int( x, 16 ), b ) )

  • @flotmac
    @flotmac 9 місяців тому

    29:00
    k = 0
    for n in range(1,1000):
    s = bin(n)[2:]
    s += str(sum(map(int,s))%2)
    s += str(sum(map(int,s))%2)
    if 210

  • @monieKidd
    @monieKidd 10 місяців тому +1

    C новосельем!!

    • @krosh8982
      @krosh8982 9 місяців тому +2

      И куда он переехал

  • @tezrogg7512
    @tezrogg7512 Рік тому +5

    1:34:00
    Более компактный вариант решения:
    for N in range(1, 1000):
    s = sum([int(x) for x in str(N) if int(x) % 2 == 0])
    s2 = sum([int(str(N)[x]) for x in range(len(str(N))) if (x + 1) % 2 == 0])
    r = abs(s2 - s)
    if r == 7:
    print(N,r)

  • @roll3262
    @roll3262 11 місяців тому +1

    59:00
    def twelf(x):
    s = ''
    while x > 0:
    s = str(x % 12) + s
    x //= 12
    return s
    a = []
    for n in range(12, 1000):
    s = twelf(n)
    if n % 12 == 0:
    s += s[-2:]
    else:
    s += twelf(n % 12 * 9)
    R = int(s, 12 )
    if R > 300:
    a.append(R)
    print(min(a))

    • @kompege
      @kompege  11 місяців тому

      Так решение неверное, например из 124 ты получишь 104 вместо a4

    • @monieKidd
      @monieKidd 10 місяців тому

      twelve !!!!!!!

  • @Vorono4ka
    @Vorono4ka 11 місяців тому +9

    Самое большое количество приветов другим заданиям было передано именно в этом вебе. Привет-привет всем упомянутым заданиям! :)

  • @wasby3674
    @wasby3674 Рік тому +3

    Сумму цифр в числе можно еще так искать, если другое не вспомнится, то довольно примитивный способ ( как по мне)
    h = 0
    b = '123441'
    for i in range(5):
    h += b.count(str(i))*i
    print(h)

    • @worldofgames2383
      @worldofgames2383 10 місяців тому

      b = bin(x)[2:]
      s = str(x)
      print (s.count('1'))

  • @Englishwithme-ov1io
    @Englishwithme-ov1io 11 місяців тому +2

    почему на 1:08:39 вы прибавляете 1 к десятичному числу, если сказано, что к двоичному и какой тогда должен быть ответ? на таком диапазоне у меня не выдавал, только до 180

    • @kompege
      @kompege  11 місяців тому

      Увеличение на один одинаково работает во всех системах счисления

    • @Englishwithme-ov1io
      @Englishwithme-ov1io 11 місяців тому

      поняла, спасибо@@kompege

  • @teisu9499
    @teisu9499 9 місяців тому +2

    Здравствуйте, хочу спросить на счёт счётчика, я правильно понимаю, если нам лень считать, то мы задаём счётчик k = 0, а далее k = k + 1 к k прибавляем и его запускаем и так он начинает считать.

    • @kompege
      @kompege  9 місяців тому +2

      Ну в общем да. Представь что мы загибаем пальцы

  • @artem1430
    @artem1430 7 місяців тому

    29:36
    Здравствуйте Алексей, а если программа все же может иметь в списке повторы, как лучше перебрать?

    • @astro-vu1mg
      @astro-vu1mg 4 місяці тому

      до начала цикла:
      mas = []
      после проверки вывода:
      mas.append(r)
      после окончания вывода:
      print(len(set(mas)))

  • @savanasha
    @savanasha 8 місяців тому +1

    Алексей, у меня вопрос к задаче под названием "Двоичная запись 3". Объясните пожалуйста: почему, когда мы добавили к перемнной b ещё одну единицу, переменная b не двоичная запись числа и вы ввели переменную b1?....
    Возможно не корректно сформулировал, поэтому, если вам не сложно, объясните пожалуйста ещё раз тот самый номер?... Очень хочу понять...

    • @kompege
      @kompege  8 місяців тому

      b1 введена для того чтобы не изменять изначальную запись двоичного числа N

    • @savanasha
      @savanasha 8 місяців тому

      @@kompege если честно, вообще не понял ваш ответ... Мы ведь и работаем с изначальной записью двоичного числа, разве нет?

    • @astro-vu1mg
      @astro-vu1mg 4 місяці тому

      ​​​@@savanasha так, алгоритм такой: мы проходимся по всем N и строим ее двоичную запись (это мы записываем в переменную b и b1). согласно пункту 3) в условии, нам нужно проверять четное или нечётное количество единиц как раз у этой самой b1. зачем же нам вводить ещё одну переменную? потому что сначала, перед пунктом 3), нам нужно выполнить пункт 2). но если мы выполним пункт 2), не вводя вторую переменную, то не сможем верно выполнить пункт 3).
      например, N=5, тогда его двоичная запись b1 ='101'. хорошо, идём к следующему пункту 2) так, нужно продублировать последнюю цифру, окей, теперь логично b1='1011'??? идём дальше. пункт 3) хм, если прочитать внимательно, то условия о четности чисел единиц должны проверяться не в изменённой записи (b1='1011'), а в изначальной (b1='101'). ох, и как же быть? мы ведь "удалили" эту самую изначальную запись, значит проверка в третьем пункте будет проводиться ошибочно! и чтобы этого избежать мы и вводим вторую переменную b - с ней мы будем работать и изменять ее - дублировать последнюю цифру, дописывать биты четности, а вот переменную b1 будем использовать для проверки в пункте 3), чтобы ничего "не поломалось" :)

    • @astro-vu1mg
      @astro-vu1mg 4 місяці тому

      ​@@savanashaвозможно вас немного ввела в ступор запись. может так будет понятнее:
      for n in range(1,100):
      b1 = bin(n)[2:] #строим двоичную запись
      b = b1 #вводим ещё одну переменную (равную b1), которую мы будем изменять в будущем
      b = b + b[-1] #изменяем b по второму пункту
      дальше проверяем условие из пункта 3), считая единицы у b1 (нашей не изменённой записи), а дописываем цифры, сказанные в этом же самом пункте уже у b

    • @astro-vu1mg
      @astro-vu1mg 4 місяці тому

      ​​@@savanasha но в целом, можно обойтись и одной переменной, если для вас, может, такая логика записи выйдет понятнее:
      for n in range(1,100)
      b = bin(n)[2:]
      b = b + b[-1]
      if b[:-1].count('1')%2==0:
      b=b+'0'
      else:
      b=b+'1'
      чтобы не вводить вторую переменную, я сделала так: построила двоичную запись числа N, продублировала последнюю цифру, проверку по четности осуществляла с b[:-1], то есть чисто для проверки использовала изменённую b, но без последней дублированной цифры, при этом b осталась такой же, как и после действий второго пункта

  • @glebandgo
    @glebandgo 10 місяців тому

    1:46:21 Почему, Алексей Михайлович, вы делаете перевод в int. Я понял, что типо двоичная Запись остатка от деления, но разве нельзя b двоичное разделить на 5?

    • @GameChanger___
      @GameChanger___ 9 місяців тому

      В любом случае это строка, а не число, её нельзя разделить, если не перевел в int()

  • @evamalayaaaa
    @evamalayaaaa Рік тому +4

    57:06 почему range с 12, а не с 1? Из-за 12СС?

    • @kompege
      @kompege  Рік тому +2

      N>11 по условию

    • @evamalayaaaa
      @evamalayaaaa Рік тому +2

      @@kompege спасибо!

  • @АртёмНикитин-ж3ф
    @АртёмНикитин-ж3ф 8 місяців тому

    59:00 правильный ответ будет 306, для N = 2!

    • @kompege
      @kompege  8 місяців тому

      По условию значения N>11

  • @piska-bobra
    @piska-bobra 9 місяців тому +2

    19:34 ФАЙЛ НЯШКА !!!!!!!!!!!!!!!! =))

  • @GameChanger___
    @GameChanger___ 9 місяців тому +1

    Задачу 62 быстрее и проще решить аналитически

  • @uniyreperrizcheb
    @uniyreperrizcheb Рік тому +21

    что-то у него седые волосы что ли появились...

    • @MuXaJlbl4
      @MuXaJlbl4 Рік тому +8

      Учителем работает всё-таки

    • @krosh8982
      @krosh8982 11 місяців тому

      А зачем он работает учителем? Что за аскет такой​@@MuXaJlbl4

    • @Rahim-nq8cc
      @Rahim-nq8cc 11 місяців тому +1

      что же вас в этом удивляет?

    • @worldofgames2383
      @worldofgames2383 10 місяців тому +7

      Поседел от вопросов учеников

    • @syperbaton
      @syperbaton 9 місяців тому

      рановато чёт ​@@Rahim-nq8cc

  • @noname-b8r
    @noname-b8r 7 місяців тому

    a = '1234567890qwertyuiopasdfghjklzxcvbnm'
    м ='0'*36
    Ибо i в a:
    k = int(i,36)
    m = m[:k] + i + m[k+1:]
    печать (м)

    • @noname-b8r
      @noname-b8r 7 місяців тому

      для тех , кому лень учить алфавит и string.ascii

  • @noname-b8r
    @noname-b8r 7 місяців тому

    для тех , кому лень учить английский алфавит или писать string.asii_lowercase:
    a = '1234567890qwertyuiopasdfghjklzxcvbnm'
    m ='0'*36
    for i in a:
    k = int(i,36)
    m = m[:k] + i + m[k+1:]
    print(m)