Решение работающее только на основаниях в алфавите которых только числа, с основаниями по типу 25 или 17 работать не будет из-за наличия в них букв, получается бесполезное видео, т.к. те задания что ты разобрал это единичные случаи которые не встретятся на егэ, разочаровал( ( речь идет про первую задачу)
Если в алфавите системы счисления есть буквы, то мы создаём строку с её алфавитом и вместо str(n % X) пишем s[n % X] по сути одна строка добавится в решение
ls = ["В", "И", "Н", "Т"] ls2 = [] for B in ls: for N in ls: for H in ls: for T in ls: for T2 in ls: ls2.append(B+N+H+T+T2) print(ls2[1019]) То же самое, что делает эта функция (уверен, что код там ни чуть не оптимизированнее, хотя сложность О(n⁵) от этого лучше не становится), но без необходимости вспоминать названия модулей и т.д
@@burning_9280 у меня физически не будет О(N), т.к там цикл в цикле в цикле, что бы получить О(n), мне нужно упростить алгос до мат. формулы, которая вычислит правильную последовательность, т.е решение через систему счисления будет О(N)
Данный код легче в разы по-моему print ('x y z w') for x in range (0, 2): for y in range (0, 2): for z in range (0, 2): for w in range (0, 2): if not(((x and not y) == (z or not w)) <= (x and z)): print(x, y, z, w)
Привет! Там всё довольно просто. Имеется набор частиц и связей друг с другом. Частицы притягиваются или отталкиваются с какой-то силой. У каждой частицы свои коэффициенты. Просто немного формул из физики и частицы начинают моделировать поведение молекул
Во второй задаче x не может принадлежать 0. Так как запись выглядела бы так 034... Такого не может быть. Если какая-то переменная стоит в начале числа, то она не может быть равна нулю, поэтому нужно начинать цикл с 1 до какого-то
Насколько я помню, (вроде бы) функция int при до. Авлении второго аргумента будет выдавать это же число в системе счисления по основанию, указанному во втором аргументе Это может облегчит некоторые типы Надеюсь, это не запрещено на егэ
А можно сделать и так a = “ВИНТ” counter = 0 for l1 in a: for l2 in a: for l3 in a: for l4 in a: for l5 in a: word = l1+l2+l3+l4+l5 counter += 15 if counter == 1050: print(counter) break
@@user-vu6mb6sp2iпредположу что опечатка, скорее всего автор хотел двоеточие поставить и промахнулся цифрой, к тому же и шифт не нажал, по сути там должно быть: "counter +=1:"
Нет конечно, не знает. В школьной программе это не проходится. Все кто инфу сдавать собрался ходит к репетам. А репеты им объясняют как эти задания решать. Вот и все. Инфа довольно легкая. Можно заучить шаблоны кода и решать по ним