Я новичок в python, и мне нужно сделать специальную версию паскальского треугольника ... особенную, чтобы элементы не складывались, а умножались.
вот пример: , поэтому функция определяется как multiplicative_pascal (start: int, height: int) -> List [List [int]]
для start = 2
и height = 5
функция должна вернуть
[[2 ], [2, 2], [2, 4, 2], [2, 8, 8, 2], [2, 16, 64, 16, 2]]
Мой мыслительный процесс и код
Сначала я попытался сделать нормальный треугольник Паскаля, а затем подумал, что просто заменим + на * и 1 (нормальная начальная точка для треугольника Паскаля) переменной start
def multiplicative_pascal(start: int, height: int) -> List[List[int]]:
Pascal_list =[[start]] #FIrst entry Defined to start
for i in range(start, height+1):
temp_list =[]
for j in range(i+1): #+1 As we are considering last element
if(j==0):#First Element = start
temp_list.append(start)
continue
elif(j == i):#Last Element = start
temp_list.append(start)
continue
else:
temp_list.append(Pascal_list[i-1][j]+Pascal_list[i-1][j-1]) # Addition of Upper Two Elements
Pascal_list.append(temp_list)
return Pascal_list
print(multiplicative_pascal(1, 5))
для этогоФункция, которую он напечатал, что он должен здесь, это результат
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4,6, 4, 1], [1, 5, 10, 10, 5, 1]]
, но когда я пытаюсь изменить значение с print (multiplicative_pascal (1, 5)) на print (multiplicative_pascal (2, 5)) это дает мне эту ошибку, и я не уверен, почему error , если вы не хотите переходить на внешнюю ссылку:
* Трассировка (последний последний вызов): файл "C: \ Users \ ASUS \ Documents \ Dalši"e štúdium !! \ MUNI \ Informatika \ ucenie na semestralny test.py ", строка 108, в печатном виде (multiplicative_pascal (2, 5)), файл" C: \ Users \ ASUS \ Documents \ Dalšie štúdium !! \ MUNI \ Informatika \ucenie na semestralny test.py ", строка 105, в multiplicative_pascal temp_list.append (Pascal_list [i-1] [j] + Pascal_list [i-1] [j-1]) # Добавление верхних двух элементов IndexError: вывести список из спискадиапазона
*
Может кто-нибудь, пожалуйста, помогите мне с этой ошибкой? или как бы вы попытались решить эту проблему? может быть, весь мой мыслительный процесс неправильный ...