Saturo Geschrieben 14. November 2001 Geschrieben 14. November 2001 Hallo, ich weiss, dass ich mit srand, gefolgt von rand() eine Zufallszahl aufrufen kann. Das Problem: Wie begrenze ich diese? Also, dass er mir zB keine Zahlen über 100 zurückgibt. Ich habe gelesen, dass man dies mit RAND_MAX dies erledigen soll: "The constant RAND_MAX is the maximum value that can be returned by the rand function. RAND_MAX is defined as the value 0x7fff." ---> ?? Wie ändere ich diese Konstante? Zitieren
gajUli Geschrieben 14. November 2001 Geschrieben 14. November 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Saturo: <STRONG> Wie ändere ich diese Konstante?</STRONG> Zitieren
Saturo Geschrieben 14. November 2001 Autor Geschrieben 14. November 2001 hm,soviel Aufwand für sone billige Funktion...eine der schwächen von C. Aber ich werd wohl nicht drum herum kommen, thx! cu Zitieren
Saturo Geschrieben 14. November 2001 Autor Geschrieben 14. November 2001 He! Ich habe ein bischen mit google gesucht und folgendes gefunden: int i; srand( (unsigned)time( NULL ) ); i=rand()%10; // Zufallszahl von 0 bis 10; cool, oder? Scheint zu funktionieren Zitieren
gajUli Geschrieben 14. November 2001 Geschrieben 14. November 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Saturo: <STRONG> i=rand()%10; </STRONG> Zitieren
Klotzkopp Geschrieben 15. November 2001 Geschrieben 15. November 2001 @Saturo: noch ein Hinweis: Modulo 10 liefert Dir Zufallszahlen von 0 bis 9 (!). Zitieren
Crush Geschrieben 15. November 2001 Geschrieben 15. November 2001 Also die Rand()-Funktionen sind relativ aufwendige mathematische Formeln die keine Timer abfragen, sondern mit der Input-Zahl verrechnungen anstellen, die halt einigermaßen gleichmäßige "Möchtegern-Zufallszahlen" erzeugen können. Die Endergebnisse dieser Rechnungen werden wieder als Eingabe verwendet um die nächsten Zufallszahlen zu berechnen. Die Modulo-Operation ist vom zeitlichen Aufwand ein Witz dagegen (ist nämlich nur eine stinknormale Division = Ein CPU-Befehl!) und fällt überhaupt nicht ins Gewicht. Wenn Dir die 2 Zeilen Code zu aufwendig sind, dann tust Du mir jetzt schon leid, denn oft kommt für noch einfachere Dinge wesentlich Komplizierteres auf einen Programmierer zu! srand(time(0)); // das ist ja nur als Initialwert notwendig, weil sonst immer die gleiche Reihenfolge auftaucht. Versuche mal srand(5) einzugeben und die Ergebnisse werden immer gleich sein, weil das halt eine mathematische Reihenrechnung ist, die bei gleichem Eingangswert immer reproduzierbare Ausgangswerte liefert! in Zukunft brauchst Du danach dann nur das hier aufrufen, sonst nix mehr int v=rand()%10; // von mir aus 1000 mal hintereinander ergibt 1000 unterschiedliche Ergebnisse Die Wahrheit ist: Es gibt eigentlich keine "echten" Zufallszahlen in der Computerwelt, daß einzige was wahrscheinlich zufällig ist sind die Eingaben des Benutzers. Selbst das Abfragen der Timer würde nämlich (theoretisch) unter den selben Bedingungen dieselben Ergebnisse erzielen! <FONT COLOR="#a62a2a" SIZE="1">[ 15. November 2001 12:11: Beitrag 8 mal editiert, zuletzt von Crush ]</font> Zitieren
Saturo Geschrieben 15. November 2001 Autor Geschrieben 15. November 2001 @Eisenuli...leude, zerfleischt mich doch nicht gleich! Ich habe dich nur nicht verstanden, was du mit Modulodivision ausdrückehn wolltest-->dachte, es handelt sich wieder um 10 Zeilen Text....deshalb der Kompliziertkommentar . Irgendwie habe ich den % Operator wohl verpennt...da war ich in der Schule nicht da <FONT COLOR="#a62a2a" SIZE="1">[ 15. November 2001 16:14: Beitrag 3 mal editiert, zuletzt von Saturo ]</font> Zitieren
gajUli Geschrieben 15. November 2001 Geschrieben 15. November 2001 Na entschuldige mal, Saturo. Deine Worte waren: "eine der Schwaechen von C", und dann sagst Du, Du haettest die Modulodivision in der Schule verpasst, eine Sache, die, weil sie ein Assemblerbefehl aller gaengigen Prozessoren ist, in jeder Programmiersprache eingebaut ist. Wenn man sich anmasst, auf so einem Kenntnisstand ueber die Schwaechen einer Programmiersprache zu urteilen, dann riskiert man halt einen Spruch... Aber nix fuer ungut... Uli Zitieren
Saturo Geschrieben 16. November 2001 Autor Geschrieben 16. November 2001 Na entschuldige mal, Uli! Die größte Schwäche von C ist ja wohl die Umständlichkeit...dadurch kann man nunmal auch alles mit der Sprache erreichen, oder willst du mir was anderes erzählen? Das mit der Schule war ein Joke! Und meinen Kenntnisstand kann ich wohl noch am besten beurteilen! Nur, weil mir der Begriff "Moduloperator" nicht geläufig war, heisst das für dich wohl automatisch, dass ich totaleinsteiger bin ,oder? Wie abgehoben kann man denn sein...sorry. Ich hab mir die Sprache komplett selber beigebracht...niks mit dem Beruf zu tun gehabt. Dass ich mich nicht mit 26 jährigen FIAEs messen kann, ist ja klar. Jedoch kann ich mittlerweile schon beurteilen, welche Vorteile die Einzelnen Sprachen haben....dazu muss ich nicht studiert haben. nee...ich sag niks mehr dazu. cu , der Rechtschreibspastiker <FONT COLOR="#a62a2a" SIZE="1">[ 16. November 2001 16:29: Beitrag 6 mal editiert, zuletzt von Saturo ]</font> Zitieren
gajUli Geschrieben 16. November 2001 Geschrieben 16. November 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Saturo: <STRONG>...ich sag niks mehr dazu. </STRONG> Zitieren
Saturo Geschrieben 16. November 2001 Autor Geschrieben 16. November 2001 arrogant ohne Ende... tuh uns beiden einen Gefallen und schließe den Thread. @Crush: thx wiedermal fuer die sachliche Hilfestellung <FONT COLOR="#a62a2a" SIZE="1">[ 16. November 2001 18:54: Beitrag 1 mal editiert, zuletzt von Saturo ]</font> Zitieren
gajUli Geschrieben 16. November 2001 Geschrieben 16. November 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Saturo: <STRONG>arrogant ohne Ende... </STRONG> Zitieren
Shadax Geschrieben 16. November 2001 Geschrieben 16. November 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von EisenUli: <STRONG> Also schoen, Du willst Dich nicht benehmen. *PLONK* Uli</STRONG> Zitieren
gajUli Geschrieben 17. November 2001 Geschrieben 17. November 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Shadax: <STRONG> *LOL* ... endlich kam mal für einenm Moment wieder BBS-Nostalgie auf 8^) </STRONG> Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.