Как я могу получить уникальный случайный вывод при печати цикла в Python? - PullRequest
1 голос
/ 11 июня 2019

поэтому я хочу, чтобы скрипт дал мне набор из 10 простых полиномов для упрощения.Давайте проигнорируем тот факт, что текущий вывод не является допустимым полиномом.Я хочу напечатать 10 со случайными целыми числами, переменными и операциями, но когда я зацикливаю их, я просто получаю ту же проблему 10 раз.Как я могу получить уникальный набор каждый раз?

Мне было трудно получить уникальный термин, но я решил эту проблему, создав уникальный термин (term0, term1) и т. Д. Для каждого термина.

import random

def int():
    interger = random.randint(2,10)
    return interger

def variable():
    letter  = ["x","y",""]
    variable = random.choice(letter)
    return variable

def op():
    op  = ["+","-","+"]
    operation = random.choice(op)
    return operation

term0 = op(), int(), variable()
term1 = op(), int(), variable()
term2 = op(), int(), variable()
term3 = op(), int(), variable()

for x in range(10):
    print(*term0,*term1,*term2,*term3,sep='',)

Я хотел бы получить уникальный вывод для каждого цикла, но в настоящее время я получаю одно и то же 10 раз.

Ответы [ 2 ]

2 голосов
/ 11 июня 2019

Вызовите ваши функции случайного выбора внутри цикла. Таким образом, элементы будут случайным образом выбираться один раз за итерацию, а не один раз перед циклом:

for x in range(10):
    term0 = op(), int(), variable()
    term1 = op(), int(), variable()
    term2 = op(), int(), variable()
    term3 = op(), int(), variable()
    print(*term0,*term1,*term2,*term3,sep='',)
0 голосов
/ 11 июня 2019

Вы не сгенерировали десять полиномов. Вы сгенерировали четыре члена для один полином, а затем напечатали те же данные десять раз. Если вам нужны новые значения, вам нужно вызывать свои функции внутри цикла, а не снаружи.

for x in range(10):
    term0 = op(), int(), variable()
    term1 = op(), int(), variable()
    term2 = op(), int(), variable()
    term3 = op(), int(), variable()

    print(*term0, *term1, *term2, *term3, sep='',)
...