AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Lottozahlengenerator
Thema durchsuchen
Ansicht
Themen-Optionen

Lottozahlengenerator

Ein Thema von Boubekeur Boumediene · begonnen am 18. Jan 2009 · letzter Beitrag vom 29. Sep 2010
Antwort Antwort
Seite 2 von 2     12   
Boubekeur Boumediene
Hallo liebe Delphi-Programmierer

Habe einen kleinen Lottozahlengenerator "6 aus 49" pogrammiert.
Hier werden durch einen KLick auf dem "Zahlen ziehen" Button 6 Zahlen gezogen,
die dann in der Listbox eingetragen werden.
Allerdings wird keine Zahl doppelt vorkommen.

Viel Spaß beim Ausprobieren

Coded by Boubekeur Boumediene
Angehängte Dateien
Dateityp: zip lottozahlengenerator_665.zip (227,2 KB, 104x aufgerufen)
 
Dipl Phys Ernst Winter

 
Delphi 3 Professional
 
#11
  Alt 19. Mai 2009, 22:58
Ich hab mir die Mühe gemacht deinen Code herunterzuladen.
Es wäre schön gewesen, wenn Du den Code für das Ziehen der Lottozahlen in eine eigene Funktion gestellt und in deinem Beitrag veröffentlicht hättest. Trennung von Oberfläche und Funktionalität erleichtert immer das Lesen eines Codes, ganz bestimmt wenn man auf alle Kommentare verzichtet.

Fehler in deinem Code:
a:= random(49)+1; gibt eine Zahl im Bereich 1..50 zurück!

Die Schleife
Delphi-Quellcode:
   repeat
     a:=random(49)+1;
   until not zahl[a];
fängt nur doppelte Zahlen, die unmittelbar aufeinanderfolgen ab. Wozu?

Das ZDF zeigt die Lottozahlen immer waagerecht sortiert von der kleinsten zur größten, deine Darstellung ist etwas ungewohnt.

Die Prüfung der Statistik wird dadurch erheblich erschwert, dass die alten Ziehungen verschwinden!
  Mit Zitat antworten Zitat
Satty67

 
Delphi 2007 Professional
 
#12
  Alt 19. Mai 2009, 23:07
Zitat von Dipl Phys Ernst Winter:
Fehler in deinem Code:
a:= random(49)+1; gibt eine Zahl im Bereich 1..50 zurück!
Gibt eine Zahl 1..49 zurück

vgl.
function Random [ ( Range: Integer) ];

Beschreibung:

Random gibt eine Zufallszahl im Bereich 0 <= X < Range zurück
  Mit Zitat antworten Zitat
gammatester
 
#13
  Alt 20. Mai 2009, 08:27
Zitat von Meflin:
Zitat von Cyf:
und wenn ich mich recht erinnere ab ca. einer Folge von 8 Zahlen vorraussagbar...
Wo haste denn das her :gruebel: Wieso sollten die einen derart schrottigen PRNG implementieren?
Weil es kein CPRNG ist, d.h. hier wird nicht gefordert, daß vergangene oder zukünftige Werte nicht vorhergesagt werden können. Es kommt nur auf die statistischen Eigenschaften an. Und da ist der in Pascal verwendete Generator
randseed := $08088405*randseed + 1 mod 2^32 gar nicht soooo schlecht. An der Form siehst Du auch die Konsequenz: Kenne ich einen 32-Bit Zufallswert kenne ich alle. Vorwärts ist trivial, rückwärts via $08088405^-1 mod 2^32 = $D94FA8CD.
  Mit Zitat antworten Zitat
Jürgen Paulus

 
Delphi 2010 Professional
 
#14
  Alt 29. Sep 2010, 12:05
Da ich gerade auf das Ende eines Programmes warte, habe ich mir mal die verschiedenen Projekte angeschaut, die hier im Forum vorgestellt werden. Dieses Projekt hier finde ich nett, und ich dachte mir, wie ich eine Zufallsziehung programmieren würde. Nun ja, anbei das Ergebnis. Wer weiß, vielleicht bringt es ja Glück.

Hier die eigentliche Funktion
Delphi-Quellcode:
const
  c_MaxZiehungen = 13983816;

type
  Ziehung_array = array [1..7] of integer;

function Ziehung_generierien : Ziehung_array;
var
  z1, z2, z3 ,
  z4, z5, z6 ,
  iAnz ,
  iZiehung : integer;

  hours ,
  mins ,
  secs ,
  milliSecs : Word;

begin

  DecodeTime(now, hours, mins, secs, milliSecs);

  RandSeed := hours+mins+secs+milliSecs;
  iZiehung := Random (c_MaxZiehungen)+1;

  iAnz := 0;
  for z1 := 1 to 44 do
    for z2 := z1+1 to 45 do
      for z3 := z2+1 to 46 do
        for z4 := z3+1 to 47 do
          for z5 := z4+1 to 48 do
            for z6 := z5+1 to 49 do
            begin

              iAnz := succ (iAnz);

              if iZiehung = iAnz then
              begin

                result [1] := z1;
                result [2] := z2;
                result [3] := z3;
                result [4] := z4;
                result [5] := z5;
                result [6] := z6;

                result [7] := iZiehung;

                exit;

              end; // if iZiehung = iAnz

            end; // for z6 := z5+1 to 49 do

end; // function Ziehung_generierien : Ziehung_array;
Angehängte Dateien
Dateityp: zip Lotto.zip (12,1 KB, 15x aufgerufen)
Jürgen Paulus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz