zulällige zahl mit auslassungen
-
-
global.15+1?
das ist irgendwie nicht korrekt^^
ersteinmal kannst du konstanten(und zahlen sind konstante) nicht verändern, zweitens kann der variablenname nicht nur aus zahlen bestehn, drittens muss da eine gleichung sein, also zB a=15
wenn du die zahl +1 rechnen möchtest, wenn sie 15 ist, dann könnte das etwa so aussehen:
"das war meine letzte flamewar PM an dich ."Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von blubberblub ()
-
Zuerst einmal: Wie Windapple in diesem tollem Artikel schreibt, sollte man floor() benutzen, um bei random() zu runden:
Das Ergebnis wäre eine ganze Zahl zwsichen 0 und 49 (einschließlich). Da du das Problem nur so schlecht beschrieben hast ist es schwer, dir zu helfen. Ich nehme einfach mal an, das du z.B. eine Lottoziehung simulieren willst. Ich würde die gezogenen Zahlen in einem Array ablegen.
GML-Quellcode
- var zahl;
- var zahlen;
- var i;
- for (i := 0; i < 6; i += 1) zahlen[i] := 0; // Sicherstellen, das alle Elemente im Array 0 sind
- for (i := 0; i < 6; i += 1) {
- do {
- zahl := floor(random(49)) + 1;
- } until (zahl != zahlen[0] && zahl != zahlen[1] && zahl != zahlen[2] &&
- zahl != zahlen[3] && zahl != zahlen[4] && zahl != zahlen[5])
- zahlen[i] := zahl;
- }
- // Irgendwas mit den Zahlen machen
Die do-Schleife hat hier den Vorteil gegenüber der while-Schleife, das ihr Inhalt mindestens einmal ausgeführt wird, also die Zahl generiert und solange geändert wird bis der Wert keine probleme mehr macht. Dabei habe ich ausgenutzt, das floor(random(49)) + 1 niemals 0 ergibt.❧ -
also ich möchte eine lottorie machen(nicht wirklich aber so ähnlich) und da kommen die zahlen 1-49 vor und wenn eine zahl gezogen wird, darf diese nicht wieder auftauchen!
-
Erzeuge einfach ein array mit n feldern, wobei n die Anzahl der möglichen Zahlen ist
und initialisiere jeden Wert mit false, d.h. ist noch nicht erschienen.
Dann erzeuge die Zufallszahl. Jedesmal nach dem erzeugen schauen: ist
array[zahl] noch false? Wenn demnach die Zahl noch nicht vorkam, setze das entsprechende
Feld auf true und verwende die Zahl. Wenn die Zahl schon vorkam, erneut eine Zahl
erzeugen.___________________________________________________________
Beware of wild pointers______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____ -
kann man mir bitte etwas mit erklärung und gml schreiben?
-
Bin mir jetzt zwar nicht ganz sicher, ob das richtig ist (C++ geschädigt
)
aber so könnt es gehen (erklärung in meinem letzten Post):
GML-Quellcode
- //array mit 46 feldern füllen
- for (i=0;i<46;i+=1)
- {
- numbers[i]=false;
- }
- for (out=0;out<6;out+=1)
- { //nur begrenzte anzahl zufallszahlen
- weitermachen=false;
- while (weitermachen==false)
- {
- //zufallszahl erzeugen und testen
- xx=round(random(46));
- if (numbers[xx-1]==false)
- {//Zufallszahl neu
- numbers[xx-1]=true;
- weitermachen=true;
- zufallsz[out]=xx;
- }
- }
- }
___________________________________________________________
Beware of wild pointers______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
-
Benutzer online 1
1 Besucher