Veröffentlicht 24. Mai 200817 j Hallo zusamen, ich bin Anfänger beim Programmieren. Ich habe ein problem mit mein Arbeit. Es soll eine Funktion haben wie folgt: Lottozahlen von 1-6 manuell selber eingeben. Zufallsgenerator muss mir als Antwort folgendes geben" Sie müssen noch X(zahl) mal spielen damit sie 6 richtige haben. So soll es aussehen ungefähr: 6 deine 1. Zahl ist die 6 12 Deine 2.zahl ist die 12 45 Deine 3. Zahl ist die 45 39 Deine 4. Zahl ist die 39 25 Deine 5. Zahl ist die 25 19 Deine 6. Zahl ist die 19 Dumusst "soviel" mal spielen um 6 richtige zu haben So soll es ungefähr aussehen. Gruß kanka73
24. Mai 200817 j Hallo, zum einen, das hört sich wieder nach Hausaufgaben an. Wenn Du ein Problem hast, dann gebe an, was Du bis jetzt hast. Als nächstes: Was willst Du machen. Du kannst nicht so oft spielen, um 6 richte zu bekommen, Du müsstest "49 über 6" Möglichkeiten iterativ durch probieren. Formuliere Deine Frage und den bis dahin genommen Lösungsweg bitte etwas präziser Phil
25. Mai 200817 j Du kannst aber ausgeben, wie oft man noch spielen muss, um mit 95% Wahrscheinlichkeit einmal sechs Richtige zu landen. Wie das geht, steht im Stochastikbuch deiner Wahl. Ist mMn kein spezifisches Programmierproblem.
26. Mai 200817 j Mein programm sieht so aus: #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> #include <dos.h> #define MAX 7 int x[6]; void Sortieren1 (void); main() { int a,n; randomize(); //Intialisierung- 1Mal for (a=0;a<MAX;a++) { x[a]=random (49)+1 ; for (n=0;n<MAX;n++); } Sortieren1 (); cout<<x[0]<<endl; cout<<x[1]<<endl; cout<<x[2]<<endl; cout<<x[3]<<endl; cout<<x[4]<<endl; cout<<x[5]<<endl; getch(); } void Sortieren1 (void) { int i,hilf,unsortiert; do { unsortiert=0; for ( i=0; i<MAX; i++) if ( x > x[i+1] ) { hilf = x ; x = x[i+1] ; x[i+1] = hilf; unsortiert=1; } } while ( unsortiert ); } // Sortieren1 dieses will so ändern, statt der generator mir 6 zahlen schmeisst sondern das ich die zahlen manuell 1-6 selber eingebe, und der zufalls generator gibt aus wieviel richtige ich habe oder wieviel mal ich spielen soll damit ich 6 richtige habe. Danke für eure Antworten:) Gruß kanka73
26. Mai 200817 j Codetags. Macht es euren Helfern doch nicht noch schwerer .. Und: Du kannst nicht ausgeben, wie oft man noch spielen muss, um zu gewinnen. Das kann nämlich prinzipiell auch nie passieren.
26. Mai 200817 j mein angegebene programm gibt mir per zufall 6 zahlen raus in reihengolge, und dieses will umändern wie angegeben. Gruß kanka73
26. Mai 200817 j Pseudocode: array : Feld für sechs Zahlen zähler: Ganzzahl mit Wert 0 Solange zähler kleiner als 6 Zahl einlesen Zahl schon im Feld? Nein --> Zahl im Feld speichern; Zähler erhöhen Ja --> Zahl verwerfen [/PHP] Prüfen wieviele Richtige: Kardinalität der Schnittmenge von Eingabemenge und erzeugte Zahlenmenge. Gruß
27. Mai 200817 j Dumusst "soviel" mal spielen um 6 richtige zu haben Dafür musst du lediglich eine Glaskugel implementieren. Die Wahrscheinlichkeit von 6 Richtigen (Bei 6 aus 49) liegt ungefähr bei 1/1398386. Das heißt: Auf lange Sicht (lies: bei unendlich vielen Versuchen) kommen auf jeweils 1,398,386 Versuche einmal 6 Richtige. Das heißt aber nicht, dass man beim 1,398,386. Versuch gewinnt. Man kann genauso gleich beim ersten oder erst beim 2,598,386. Versuch gewinnen. Die Wahrscheinlichkeit, zu gewinnen, erhöht sich auch nicht dadurch, dass man schon sehr oft gespielt und nicht gewonnen hat. Der Zufall hat kein Gedächtnis.
30. Mai 200817 j Hallo nochmal, ich habe das Programm umgeändert, ich habe auch selber eingesehen das die Wahrscheinligkeit auf sechs richtige zu treffen fast in das unendliche geht. Trotzdem danke an alle, übrigens ich habe das so programmiert das ich selber 1-6 manuell eingebe und der zufallasgenerator wird im hintergrund sechs zahlen generiert und sagt mir aus wieviel richtige ich habe, immerhin etwas .
30. Mai 200817 j Hallo, nein, sie ist nicht unendlich sondern 1 / (49 über 6). Wenn du 6 unterschiedliche Zufallszahlen aus [1 : 49] generieren willst, geht das in C++ folgendermaßen: #include <iostream> #include <cstdlib> #include <set> using namespace std; int main() { set<int> zahlen; while(zahlen.size()<6) { zahlen.insert(rand()%49+1); } for(set<int>::iterator it = zahlen.begin(); it != zahlen.end(); it++) { cout << *it << "\n"; } } [/PHP]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.