AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

randomize problem

Ein Thema von painrestricter · begonnen am 2. Nov 2009 · letzter Beitrag vom 3. Nov 2009
Antwort Antwort
Seite 3 von 3     123
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#21

Re: randomize problem

  Alt 2. Nov 2009, 21:08
Naja, dann ist Result ja mehr als Blödsinn
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
helgew

Registriert seit: 30. Jul 2008
125 Beiträge
 
#22

Re: randomize problem

  Alt 2. Nov 2009, 23:34
Zitat von isilive:
@HelgeW: Random(49)+1 ist doch in Ordnung oder?!
Magst du einen Screenie von einem Histogramm posten, wäre mal interessant wie sich die Zahlen wirklich verteilen?!
Visualisierung ist alles... der Mensch braucht den visuellen Input
Angehängte Dateien
Dateityp: rar verteilungsdemo_129.rar (166,4 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#23

Re: randomize problem

  Alt 2. Nov 2009, 23:57
tja, erst Runden und dann mit +0.5 den Fehler wieder ausmerzen ...
kennt ihr schon Delphi-Referenz durchsuchenTrunc?

ein bissl dynamischer für noch mehr input
und auch noch Trunc+Random, sowie RandomRange reingemacht


schon schlimm, wie die OH-Beschreibung vom Code abweicht (RandomRange)
Angehängte Dateien
Dateityp: zip verteilungsdemo_488.zip (194,4 KB, 8x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von isilive
isilive

Registriert seit: 15. Okt 2008
Ort: Österreich
192 Beiträge
 
Delphi 2009 Professional
 
#24

Re: randomize problem

  Alt 3. Nov 2009, 01:56
Gute Arbeit! So einleuchtend visualisiert hat die Verteilung (der Quantilbreiten, um mit Helge's Worten zu sprechen) sicherlich noch niemand. Da gehen jedem Zweifler die Argumente aus
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten API wie ein Stolperstein wirken.
  Mit Zitat antworten Zitat
painrestricter

Registriert seit: 2. Nov 2009
43 Beiträge
 
#25

Re: randomize problem

  Alt 3. Nov 2009, 13:54
öh...ja, genau

tut mir leid wenn ich das jetzt so sage, aber ich weiß seit der ersten halben seite nicht mehr wovon ihr redet

aber danke für das (48)+1, jetzt kommt endlich keine null mehr

wie ich verhindern kann dass zwei gleiche zahlen vorkommen, weiß ich aber noch nicht.

aber vielen dank jungs!
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#26

Re: randomize problem

  Alt 3. Nov 2009, 13:57
Zitat von painrestricter:
öh...ja, genau

tut mir leid wenn ich das jetzt so sage, aber ich weiß seit der ersten halben seite nicht mehr wovon ihr redet

aber danke für das (48)+1, jetzt kommt endlich keine null mehr

wie ich verhindern kann dass zwei gleiche zahlen vorkommen, weiß ich aber noch nicht.

aber vielen dank jungs!
Du musst dir merken, welche Zahlen du bereits gezogen hast und falls diese bereits gezogen wurden einfach eine neue ziehen.

Darum ist auch eine for..next-Schleife ungeeignet für dein Problem, weil du ja solange ziehen musst, bis du sechs verschiedene Zahlen hast.

Besser repeat...until oder while...do.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#27

Re: randomize problem

  Alt 3. Nov 2009, 14:04
so als Tipp () man darf auch sich bei Anderen Tipps holen ... aka Abgucken

Hier im Forum suchenLotto
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von isilive
isilive

Registriert seit: 15. Okt 2008
Ort: Österreich
192 Beiträge
 
Delphi 2009 Professional
 
#28

Re: randomize problem

  Alt 3. Nov 2009, 14:52
Wenn du ein Array für die Zahlen nimmst, kannst du sie der Reihe nach vergleichen.
Das hier ist nur Pseudocode...

Delphi-Quellcode:
array of integer deklarieren
For i := 1 to 6
  repeat
    array[i] = random ...
    flag := true;
    Gib j einen Startwert;
      while j>0 do
        begin
          if array[i] = array[j] then flag := false;
          mache j kleiner;
        end;
  until flag
Offtopic:
Was man ziemlich oft findet sind konstruktionen a'la:
Delphi-Quellcode:
a := random(49);
if a = 0 then
  a := random(49);
weiter ...
was aber nicht verhindert, dass beim zweiten mal die Zahl wieder 0 sein kann...

Folgenden Code hab ich mal gefunden:
Delphi-Quellcode:
If CheckBox1.checked Then // erst wird by ein zufälliger Wert gegeben
  by := RandRange(32, 128)
Else
  by := random(256);

While by = 0 Do // und dann nochmal verhindert, dass er 0 sein kann.
  If CheckBox1.checked Then
    by := RandRange(32, 128)
  Else
    by := random(256);
Aber wenn es spät in der Nacht schreiben wir alle manchmal so Zeugs, oder?
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten API wie ein Stolperstein wirken.
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#29

Re: randomize problem

  Alt 3. Nov 2009, 17:06
Noch eine Idee, war hier schon einmal:

1. Erzeuge eine Liste aller Zahlen im Interval [1;49]
2. Ziehe eine beliebige Zahl aus der Liste, zeige sie an.
3. Lösche(!) nun dieses Element aus der Liste.
4. Führe die Schritte 2..4 insgesamt 6x aus
Fertig. Das ist genau das, was man beim Lotto (z.B.) macht.

oder mein Gedanke:
Erzeuge ein Array of integer von 1..49 und schreibe dort z.B. überall Nullen herein.
Ziehe eine Zahl (z.B 23) und überscchreibe dann Zahl[23} mit der Zufallszahl
Ziehe die nächste Zahl. Wenn es wieder 23 sein sollte, guckst Du im Array bei Zahl[23] nach,
ob sie nicht Null ist. Dann mußt Du halt noch einmal eine Zufallszahl erzeugen
.. usw, bis Du 6 verschiedene Zahlen hast.

Am Ende brauchst Du nicht einmal nach Größe sortieren, sondern im Array nur die Zahlen auslesen,
die nicht den Inhalt Null haben.


PS: Habe den Bug in Post #17 Lotto3.exe beseitigt, hier wurden MaxInt-Werte überschritten.

Gruß

Wolfgang
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:58 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