Mögliche Duplizieren:
why do i always get the same sequence of random numbers with rand()?Warum bekomme ich immer dieselben zufälligen Werte?
Ich bin von der Tatsache verwechselt, dass selbst mit verschiedenen Programmen (auf der gleichen Maschine) zu laufen/kompilieren, und nachdem die vaues nilling (vor und nach) der Funktion .., die egal ist WAS .. Ich werde weiterhin die gleichen "zufällige" Zahlen ... jedes Mal, wenn ich es laufen. Ich schwöre das ist nicht, wie es sollte arbeiten .. Ich werde so einfach zu veranschaulichen, wie möglich ...
#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
int rPrimitive = 0; rPrimitive = 1 + rand() % 50;
NSNumber *rObject = nil; rObject = [NSNumber numberWithInt:rand() % 10];
NSLog(@"%i %@", rPrimitive, rObject);
rPrimitive = 0; rObject = nil;
NSLog(@"%i %@", rPrimitive, rObject);
return 0;
}
Run in Textmate:
i686-apple-darwin11-llvm-gcc-4.2
8 9
0 (null)
Run es in Coderunner:
i686-apple-darwin11-llvm-gcc-4.2
8 9
0 (null)
Führen Sie es eine Million Mal, wenn Sie möchten. Sie können sagen, was es immer sein wird. Warum passiert das? Warum oh warum ist das "wie es ist"? Diese
Meine Frage hatte wirklich mehr zu tun mit der Tatsache, dass diese Ergebnisse sich über logische Unterteilungen des OS/Arbeitsspeichers erstrecken und dass sie auftreten, obwohl den Werten Null zugewiesen wird, als zu "rand". –
@alexgray Das bedeutet nur, dass die verschiedenen Betriebssysteme denselben PRNG verwenden, was nicht unerwartet ist.Das Setzen von Nullen ändert nichts, da dies das erwartete Verhalten von 'rand' und nicht ein Speicherfehler ist. –
Entfernen Sie den automatisch generierten doppelten Link bitte nicht. Sie können diese Frage für die Aufmerksamkeit des Moderators markieren oder das Problem auf [Meta.SE] ansprechen, wenn Sie der Meinung sind, dass es erneut geöffnet werden sollte. –