На рисунке показано несколько поколений одномерного клеточного автомата. У каждой клетки только два соседа — слева и справа, а поле представляет собой бесконечную полосу клеток (правый сосед последней клетки – это первая клетка, а левый сосед первой клетки – последняя). Эволюция идёт сверху вниз: первое поколение приведено в верхней строчке, второе — во второй сверху и т.д. Правило эволюции дано в верхней части рисунка. Цвет каждой ячейки текущего поколения определяется сочетанием цветов трёх соседних ячеек предыдущего поколения, расположенных над ней: непосредственно сверху и по диагоналям (сверху-слева и сверху-справа). Всего возможны восемь разных «триплетов», порождающих в следующем поколении либо закрашенную ячейку (1), либо пустую (0). Это дает 256 возможных правил эволюции. В этой задаче используется правило номер 30. Используя библиотеку numpy, напишите функцию generation(line), которая вычисляет и возвращает десятое поколение клеточного автомата по правилу 30. Формат ввода Тестирующая система будет вызывать вашу функцию, например, так: print(generation("1001000101111100000101111001011011101101101111110111110000000000000011000001011001100011111101001001")) Ожидаемый результат 0101100010011111110000011100001111101000010100111101101011001111110010110000011001000001100001100001 Вывод 1010010001100100100000001000000100101111010111001000110001110010011010100000001101111101000000111010 Вот мой код но он не работает помогите пожалуйста, не могу найти ошибку def generation(line): a =[list(line), [], [], [], [], [], [], [], [], []] for j in range(len(a) - 1): for i in range(len(a[j])): if i == 0: if a[j][0] == '1' or a[j][1] == '1': a[j + 1].append('1') else: a[j + 1].append('0') elif len(a[j]) - 1 == i: if (a[j][-1] == '1' and a[j][-2] == '0') or a[j][-1] == '0' and a[j][-2] == '0': a[j + 1].append('1') else: a[j + 1].append('0') else: if (a[j][i - 1] == '1' and a[j][i] == '0' and a[j][i + 1] == '0') or \ (a[j][i - 1] == '0' and a[j][i] == '1' and a[j][i + 1] == '1') or \ (a[j][i - 1] == '0' and a[j][i] == '1' and a[j][i + 1] == '0') or \ (a[j][i - 1] == '0' and a[j][i] == '0' and a[j][i + 1] == '1'): a[j + 1].append('1') else: a[j + 1].append('0') return ''.join(a[-1]) Код def generation(line): a =[list(line), [], [], [], [], [], [], [], [], []] for j in range(len(a) - 1): for i in range(len(a[j])): if i == 0: if a[j][0] == '1' or a[j][1] == '1': a[j + 1].append('1') else: a[j + 1].append('0') elif len(a[j]) - 1 == i: if (a[j][-1] == '1' and a[j][-2] == '0') or a[j][-1] == '0' and a[j][-2] == '0': a[j + 1].append('1') else: a[j + 1].append('0') else: if (a[j][i - 1] == '1' and a[j][i] == '0' and a[j][i + 1] == '0') or \ (a[j][i - 1] == '0' and a[j][i] == '1' and a[j][i + 1] == '1') or \ (a[j][i - 1] == '0' and a[j][i] == '1' and a[j][i + 1] == '0') or \ (a[j][i - 1] == '0' and a[j][i] == '0' and a[j][i + 1] == '1'): a[j + 1].append('1') else: a[j + 1].append('0') return ''.join(a[-1])
Ну а где import numpy? --- Сообщение объединено с предыдущим 11 май 2020 И да, когда запускаешь прошу - пишет же место ошибки, не понимаю, какие тогда проблемы? Может ты отступы не так ставил...
Молодость, Эм бл, это и так понятно, но ошибки не вызывает, и бл пока модер полдня тему постил я уже все решил