Повышение эффективности рекурсивного цикла в функции генерации чиселPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Повышение эффективности рекурсивного цикла в функции генерации чисел

Сообщение Anonymous »

У меня есть программа, в которой я прошу пользователя ввести вес собранных растений, а затем сколько всего растений было собрано, затем генерируется список чисел в диапазоне +100 или -100, в сумме общий вес собранных растений. Моя проблема в том, что рекурсивная функция, которую я создал, во многих случаях достигает предела рекурсии, и некоторые пары чисел просто не работают, например, общий вес растения 123 кг при общем сборе 13 растений, он просто не выводит список чисел.
вот мой код

Код: Выделить всё

import random
import sys
from js import document, alert

def display_output(text):
output_div = document.getElementById("output")
output_div.innerHTML += text + "
"

def display_list_item(text):
list_div = document.getElementById("list")
new_item = document.createElement("div")
new_item.textContent = text
list_div.appendChild(new_item)

def get_inputx(x):
while True:
try:
x = int(input(""))
return x
except ValueError:
display_output("invalid, try again")

def get_inputy(y):
while True:
try:
y = int(input(""))
return y
except ValueError:
display_output("invalid, try again")

def rand_num_gen(z, y, v):
e = [z + random.randrange(-101,110) for i in range(y)]
i = sum(e)
if i == v:
for num in e:
display_list_item(str(num))
display_output(f"These numbers add up to: {i}g")
else:
rand_num_gen(z,y,v)

def main():
x = get_inputx(alert(f"enter total weight of plants in kg"))
y = get_inputy(alert(f"enter total number of plants"))
v = (x * 1000)  # Total weight in grams
z = (v / y)  # Average weight per plant
display_output(f"Your average weight = {z}g"+"-----")
display_output(f"Total weight = {v}g"+"-----")
rand_num_gen(z, y, v)

sys.setrecursionlimit(1500)
main()
если бы кто-нибудь мог дать мне подсказки, это было бы здорово
я пробовал ограничить циклы и попытаться разделить функцию на другие более мелкие, но потом это просто ничего не выведет

Подробнее здесь: https://stackoverflow.com/questions/791 ... g-function
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»