Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Lottozahlengenerator (https://www.delphipraxis.net/127737-lottozahlengenerator.html)

Boubekeur Boumediene 18. Jan 2009 08:48


Lottozahlengenerator
 
Liste der Anhänge anzeigen (Anzahl: 1)
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 :wink:

Coded by Boubekeur Boumediene

alzaimar 18. Jan 2009 08:49

Re: Lottozahlengenerator
 
Wieso verschlüsselst Du die ZIP-Datei? :gruebel:

Boubekeur Boumediene 18. Jan 2009 08:53

Re: Lottozahlengenerator
 
Sry hab das total vergessen :wall: :wall: :wall:
So Sie müsste jetzt unverschlüsselt sein :mrgreen:

DP-Maintenance 18. Jan 2009 09:10

DP-Maintenance
 
Dieses Thema wurde von "alzaimar" von "Programmieren allgemein" nach "Freeware" verschoben.
Das ist ein fertiges Programm

lbccaleb 18. Jan 2009 09:12

Re: Lottozahlengenerator
 
Bei allen Versuchen die ich gemacht habe (dürften so an die 100 gewesen sein) hab ich außer in der letzten Zeile keine Zahlen gahabt die kleiner als 10 waren, und in den ersten Reihen kommt man gerade mal auf den 20iger Bereich...
Ich glaube du musst noch Randomize; mit einbauen.. Hab mir dein Code aber noch nicht angesehen (kein Delphi hier)..

Edit:
Auch das ist Open-Source

Noedel 18. Jan 2009 09:59

Re: Lottozahlengenerator
 
doch im code steht ein Randomize. Zwar im Button.Click Event, aber es steht drin.
@TE: Schreibe doch das "randomize" lieber in die
Delphi-Quellcode:
initialization
oder in das Form.Create

Zum eigentlichen Projekt:
Ich kann dazu nur sagen, dass solche Programme wohl von jedem mal geschrieben wurden. Es muss also nicht sein, dass du soetwas "simples" hier postest, denn es hat wohl kaum einen Sinn: Anfänger müssten/müssen so etwas selber schaffen und Fortgeschrittene im Programmieren schmunzeln darüber. Also eigetlich nur Platzverschwendung.

Dipl Phys Ernst Winter 19. Mai 2009 18:39

Re: Lottozahlengenerator
 
"Noedel" hat geschrieben:
Zitat:

Ich kann dazu nur sagen, dass solche Programme wohl von jedem mal geschrieben wurden. Es muss also nicht sein, dass du soetwas "simples" hier postest, denn es hat wohl kaum einen Sinn: Anfänger müssten/müssen so etwas selber schaffen und Fortgeschrittene im Programmieren schmunzeln darüber. Also eigetlich nur Platzverschwendung.
Das "Simple" hört sofort auf, wenn man nachweisen will, das die gezogenen Zahlen wirklich zufällig sind!

Dipl Phys Ernst Winter 19. Mai 2009 18:48

Re: Lottozahlengenerator
 
"lbccaleb" hat die Statistk getestet
Zitat:

Bei allen Versuchen die ich gemacht habe (dürften so an die 100 gewesen sein) hab ich außer in der letzten Zeile keine Zahlen gahabt die kleiner als 10 waren, und in den ersten Reihen kommt man gerade mal auf den 20iger Bereich...
Ich glaube du musst noch Randomize; mit einbauen.
.
Randomize wird die fasche Statistk nicht korregieren, es muss ein Fehler in Algorithmus vorliegen, so "simpel" scheints nicht zu sein.

Cyf 19. Mai 2009 18:50

Re: Lottozahlengenerator
 
Zitat:

Zitat von Dipl Phys Ernst Winter
"Noedel" hat geschrieben:
Zitat:

Ich kann dazu nur sagen, dass solche Programme wohl von jedem mal geschrieben wurden. Es muss also nicht sein, dass du soetwas "simples" hier postest, denn es hat wohl kaum einen Sinn: Anfänger müssten/müssen so etwas selber schaffen und Fortgeschrittene im Programmieren schmunzeln darüber. Also eigetlich nur Platzverschwendung.
Das "Simple" hört sofort auf, wenn man nachweisen will, das die gezogenen Zahlen wirklich zufällig sind!

[OT]Was schwer werden könnte, da Delphi Pseudozufallszahlen, für so etwas nicht ausgelegt sind und wenn ich mich recht erinnere ab ca. einer Folge von 8 Zahlen vorraussagbar...
Außer dass das weder vom TE noch sonst jemanden gefordert wurde und hier daher irrelevant ist.

Meflin 19. Mai 2009 18:56

Re: Lottozahlengenerator
 
Zitat:

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?

Dipl Phys Ernst Winter 19. Mai 2009 22:58

Re: Lottozahlengenerator
 
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:
Delphi-Quellcode:
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!

Satty67 19. Mai 2009 23:07

Re: Lottozahlengenerator
 
Zitat:

Zitat von Dipl Phys Ernst Winter
Fehler in deinem Code:
Delphi-Quellcode:
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

gammatester 20. Mai 2009 08:27

Re: Lottozahlengenerator
 
Zitat:

Zitat von Meflin
Zitat:

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
Delphi-Quellcode:
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.

Jürgen Paulus 29. Sep 2010 12:05

AW: Lottozahlengenerator
 
Liste der Anhänge anzeigen (Anzahl: 1)
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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz