Zum Inhalt springen

Lottozahlen manuell eingeben und per zufallsgenerator angeben wie oft ich spielen mu


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

Geschrieben

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ß

Geschrieben
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.

Geschrieben

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 ;).

Geschrieben

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]

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...