Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Eine Zufallszahl pro Tag (https://www.delphipraxis.net/108989-eine-zufallszahl-pro-tag.html)

Jonelmeier 22. Feb 2008 13:06


Eine Zufallszahl pro Tag
 
Hi!

Ich arbeite grade an einem Programm was einem jeden Tag ein anderes Zitat anzeigt...wie auch immer...aber da ein Zitat halt immer genau einen Tag angezeigt werden soll...
Wie kann ich es hinbekommen, das ich jeden Tag eine andere Zufallszahl bekomme, die dann für den ganzen Tag gültig ist? Wenn möglich ohne irgendwelche zwischengespeicherten Daten in 'ner Datei oder Registry? - Geht das überhaupt?

Für 'nen kleinen Tipp wäre ich sehr Dankbar!!!

Jonas aus Hamburg

Gruber_Hans_12345 22. Feb 2008 13:09

Re: Eine Zufallszahl pro Tag
 
theoretisch sollte es funktionieren, wenn du den Zufalssgenerater immer mit dem gleichen RandSeed startest (pro Tag)

probiere mal einfach den RandSeed auf trunc(now) zu stellen, dann sollten ja die zufallszahlen immer der gleichen reihenfolge nach kommen, und am nächsten tag dann andere ...

Jonelmeier 22. Feb 2008 13:49

Re: Eine Zufallszahl pro Tag
 
Also, das funktioniert nur so bedingt bis garnicht...so gemacht wie von dir beschrieben, und dann Zufallszahlen von 0 bis 12 "gesucht". Gibt für heute, morgen und über morgen die Zahl 6 aus, für die nächsten 3 Tage die 7 und so weiter...(Hab die Windowszeit jeweils auf den nächsten Tag gesetzt...) Ist also nicht so wirklich zufällig :( :(

Xong 22. Feb 2008 13:55

Re: Eine Zufallszahl pro Tag
 
Nimm dir das Datum, rechne es (wie auch immer) in eine Ganzzahl um und rechne Modulo die Anzahl der Bilder.

Alternativ dazu musst du halt die Zufallszahl für den Tag speichern.

Jonelmeier 22. Feb 2008 14:01

Re: Eine Zufallszahl pro Tag
 
Zitat:

Zitat von Xong
Nimm dir das Datum, rechne es (wie auch immer) in eine Ganzzahl um und rechne Modulo die Anzahl der Bilder.

Wenn ich das richtig verstehe, ist das dann aber keine zufällige Reihenfolge mehr :(
Zitat:

Zitat von Xong
Alternativ dazu musst du halt die Zufallszahl für den Tag speichern.

Komme ich wohl dann nicht drum rum...naja, trotzdem vielen Dank für eure Tipps!!!

Jonas

Xong 22. Feb 2008 14:07

Re: Eine Zufallszahl pro Tag
 
Zitat:

Zitat von Jonelmeier
Wenn ich das richtig verstehe, ist das dann aber keine zufällige Reihenfolge mehr :(

So oder so nicht. Schließlich willst du eine Abhängigkeit vom Tag.
Mit der Methode hast du für einen festen Tag zwar ein bestimmtes Bild, aber trotzdem wird für jeden Tag ein zufälliges Bild genutzt. Du kannst aus dem Datum ja einen Hashwert bilden und diesen Modulo der Anzahl rechnen.

Jonelmeier 22. Feb 2008 14:11

Re: Eine Zufallszahl pro Tag
 
Der Tipp ist super! Ich danke dir!

Jonas

DGL-luke 22. Feb 2008 15:43

Re: Eine Zufallszahl pro Tag
 
hm :-\

trunc(now) bzw. trunc(date) sollte eigentlich wirklich den ganzen tag gleich bleiben.

Jonelmeier 22. Feb 2008 15:50

Re: Eine Zufallszahl pro Tag
 
Zitat:

Zitat von DGL-luke
hm :-\

trunc(now) bzw. trunc(date) sollte eigentlich wirklich den ganzen tag gleich bleiben.

Tut es ja auch...aber die Zahlen, die ich dann von der Random() Fuktion bekomme, sind dann purer Mist!
Hab das ganze durch umstellen des Datums in Windows mal durchprobiert und mir eine Zufafallszahl zwischen 0 und 12 geben lassen.
Hier mal die Liste der Ergebnisse:

21.02: 5
22.02: 6
23.02: 6
24.02: 6
25.02: 7
26.02: 7
27.02: 7
28.02: 8
29.02: 8
01.03: 8
[...] Und so weiter...also nicht das was ich brauche...

SirThornberry 22. Feb 2008 15:50

Re: Eine Zufallszahl pro Tag
 
wird es auch, ich glaube ihn stört eher das zwar das Bild zufällig verwendet wird aber es eben auch passiert (bzw. immer so ist) das am dritten Tag nicht das dritte Bild kommt sondern das 2te wieder.

Letztendlich will er also ein zufälliges Bild was erst wieder angezeigt wird wenn der Tag vorbei ist und auch alle anderen Bilder gezeigt wurden.

Ich würde das ganze wie folgt lösen:
- array mit den Bildern
- array per zufallszahl mischen
- die Zufallszahl zum mischen darf sich jedoch nur alle Bild-Anzahl tage ändern. Daher die Zufallszahl anhand: Tagwert modulo Bildanzahl


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 Uhr.
Seite 1 von 2  1 2      

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