2016-10-13 8 views
0

Gibt es eine Funktion in Python (ich arbeite mit SageMath), um zum Beispiel 10 zufällige ganze Zahlen zwischen 0 und 30 zu bekommen, ohne sie zu wiederholen?X Zufallszahlen zwischen Y und Z erzeugen?

+2

es sehen hier: http://stackoverflow.com/questions/3996904/generate-random- integers-between-0-and-9 – dima

+0

@dima: Für den Datensatz ist dies kein Duplikat von [Generate random integers zwischen 0 und 9] (http://stackoverflow.com/q/3996904/364696), weil Generieren Mehrere eindeutige Werte sind ein bedeutsam anderes Problem. Das heißt, [Erstellen Sie eine Reihe von sortierten Zufallszahlen aus einem bestimmten Bereich] (http://stackoverflow.com/q/14748910/364696) ist identisch, außer dass auch die Werte sortiert werden sollen (und dieser Schritt kann einfach weggelassen werden) . – ShadowRanger

Antwort

8
import random 
random.sample(range(31), 10) 
+1

'def gen_between (start, end, count): return random.sample (range (start, end + 1), count)' würde helfen, dies ein bisschen mehr anpassbar zu nennen. –

+1

random.sample (Bereich (30 + 1), 10), eigentlich. – astraujums

+0

@AdamSmith es scheint kaum wert. Zum einen zwingt es uns dazu, uns um "Start" und "Count" zu kümmern, was wir wahrscheinlich nicht allzu oft tun werden –

0
>>> n=[] 
>>> while len(n)<=10: 
    x=randint(0,30) 
    if x not in n: 
     n.append(x) 

vergessen Sie nicht, die Liste zu löschen, jedesmal wenn Sie diesen Code ausführen

+0

Dies könnte möglicherweise eine Liste von nur einer Nummer generieren. –

+0

hmmm ich vergesse, dass –

+0

danke @PatrickHaugh –

Verwandte Themen