Wie zu beheben Wert produziert von Random?
Ich habe ein Problem, in meinem code jemand helfen kann, groß sein wird.
dies ist der Beispiel-code.
from random import *
from numpy import *
r=array([uniform(-R,R),uniform(-R,R),uniform(-R,R)])
def Ft(r):
for i in range(3):
do something here, call r
return something
allerdings fand ich, dass in der python-shell, jedes mal, wenn ich run-Funktion Ft, es gibt mir eine andere
Ergebnis.....scheint, wie Sie innerhalb der Funktion in jeder Iteration der for-Schleife,rufen Sie r einmal, es gibt zufällige zahlen einmal... aber nicht fix, die erste Zufallszahl, wenn ich die Funktion aufrufen....wie kann ich es beheben?
wie wärs mit b=copy(r), dann rufen Sie b in der Ft-Funktion?
Dank
InformationsquelleAutor user211037 | 2009-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meinst du, dass Sie wollen, dass die Anrufe zu
randon.uniform()
zurück die gleiche Abfolge der Werte jedes mal, wenn Sie die Funktion ausführen?Wenn dem so ist, müssen Sie rufen Sie
random.seed()
um die start der Sequenz auf einen festen Wert. Wenn Sie nicht, wird die aktuelle Systemzeit verwendet wird, initialisieren Sie den Zufallsgenerator, der bestimmt ist, um zu verursachen, dass es zum generieren einer anderen Reihenfolge jedes mal.Etwas, wie das funktionieren sollte
Seltsam genug, die
100
ist einfach eine willkürliche Zahl. Um sicherzustellen, dass dierandom
Funktionen, die Rückkehr der gleichen Reihenfolge, die Sie benötigen, übergeben Sie den gleichen Wertseed()
jeder Zeit, aber der tatsächliche Wert ist irrelevant. 100 war nur zufällig die erste, die mir in den Sinn kam. Wenn dann würde ich schon noch gedacht, ich würde wahrscheinlich nicht mehr für 42.InformationsquelleAutor Simon Callan
Ich denke du meinst 'Liste' statt 'array', Sie versuchen, verwenden Sie Funktionen, wenn Sie wirklich brauchen nicht zu. Wenn ich Sie richtig verstehe, wollen Sie die Bearbeitung einer Liste von Zufalls schwimmt:
InformationsquelleAutor dagoof