PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zufallsgenerator Programm?



wo-ufp1
29-01-2009, 11:43
Hi.
Ich suche ein Programm, wo aus einer mir vorgegebenen Zahl (die ich auch mal ändern will) eine Zufallszahl ausgegeben wird.

tia mfg wo-ufp1

wuwo
29-01-2009, 11:50
http://www.freeware-archiv.de/shareware/ExcelRandomNumberorDateGeneratorSoftware-Excel.htm

wildflowersoul
29-01-2009, 11:51
Hi.
Ich suche ein Programm, wo aus einer mir vorgegebenen Zahl (die ich auch mal ändern will) eine Zufallszahl ausgegeben wird.

tia mfg wo-ufp1

Huh? Was genau soll mit einer von dir vorgegebenen Zahl passieren? Bzw. was ist das für eine Zahl? von-bis? Und was soll rauskommen?

Beispiel - du hast eine Zahl, und die wird (wie bei einem normalen Zahlenwürfel) zufällig mit 1, 2, 3, 4, 5 oder 6 multipliziert? So, oder so ähnlich?

wo-ufp1
29-01-2009, 12:09
Huh? Was genau soll mit einer von dir vorgegebenen Zahl passieren? Bzw. was ist das für eine Zahl? von-bis? Und was soll rauskommen?

Beispiel
Aus einer Zahlenreihe von 1-216 soll mir irgend eine Zahl ausgegeben werden.

Ich möchte diesen Wert, die Zahl 216 (also 1-216) irgend wann einmal ändern, da ich eine größere bzw. kleinere Bandbreite brauche.

Ev. wäre eine Überlegung, daß ganze mit Würfeln zu machen :zwinker:

xLink
29-01-2009, 12:13
Wenn Du einen Taschenrechner mit "etwas mehr Tasten" hast (einen wissenschaftlichen Rechner) dann her der mit hoher Wahrscheinlichkeit eine Zufallszahlfunktion (nennt sich meist RND ond er RAND für "random" -> "Zufall")
Der liefert dann eine Zahl zwischen 0 und 1, also zB 0,437
Das multiplizierst Du dann mit 215 und rechnest 1 dazu.
Die Zahlen die Du erhältst sind dann von 1 bis 216.

Also falls Du sowas daheim hast..

lg, xLink

Supermerlin
29-01-2009, 12:22
Kannst im Excel auch machen mit der Funktion:

Zelle =ZUFALLSZAHL()*(b-a)+a

damit kann man eine reelle Zufallszahl erzeugen, die zwischen a und b liegt.

lg, Supermerlin

wildflowersoul
29-01-2009, 13:02
Aus einer Zahlenreihe von 1-216 soll mir irgend eine Zahl ausgegeben werden.

Ahso - jezt wird mir vieles klarer. Lösungsansätze stehen ja schon da, ist wirklich keine Hexerei.

Edit: Wenn du unbedingt ein 'Programm' haben willst, schreibst du einfach die folgenden Zeilen in einem normalen editor und speicherst es (unter Windows) natürlich als .vbs ab.


randomize
Zahl = rnd * 215 + 1
msgbox int(Zahl)

wo-ufp1
29-01-2009, 14:44
Kannst im Excel auch machen mit der Funktion:

Zelle =ZUFALLSZAHL()*(b-a)+a

damit kann man eine reelle Zufallszahl erzeugen, die zwischen a und b liegt.
Aha. Danke.
So etwas ähnliches, =GANZZAHL(ZUFALLSZAHL()*216),
hab ich schon gelesen.

Letztendlich ist mir Excel aber eh zu unsympathisch und mir ein kleineres Programm lieber.


Wenn Du einen Taschenrechner mit "etwas mehr Tasten" hast (einen wissenschaftlichen Rechner) dann her der mit hoher Wahrscheinlichkeit eine Zufallszahlfunktion (nennt sich meist RND ond er RAND für "random" -> "Zufall")
Nein hab ich nicht.
Aber Windows XP hat einen. Aber leider keine RND/RAND Funktion :(
Trotzdem Danke für den Tipp!

wo-ufp1
29-01-2009, 14:45
Edit: Wenn du unbedingt ein 'Programm' haben willst, schreibst du einfach die folgenden Zeilen in einem normalen editor und speicherst es (unter Windows) natürlich als .vbs ab.


randomize
Zahl = rnd * 215 + 1
msgbox int(Zahl)
:klatsch: :toll:
Danke.

Wenn du jetzt vielleicht noch eine Lösung wüßtest, daß ich das Programm nicht ein jedes Mal neu starten müßte...:)
Quasi einen Button für nocheinmal oder so ähnlich.

mfg wo-ufp1

Supermerlin
29-01-2009, 14:59
Kommt auf den Verwendungszweck an. RND und Zufallszahl() sind in der Praxis meistens unbrauchbar, da gleichverteilt.

als Unwissender - wie sollten Zufallszahlen verteilt sein um sie für Statistikanwendungen etc. verwenden zu können?

lg, Supermerlin

GeorgOctane
29-01-2009, 15:00
Kommt auf den Verwendungszweck an. RND und Zufallszahl() sind in der Praxis meistens unbrauchbar, da gleichverteilt.

Wieso soll ein Gleichverteilung bei Zufallszahlen unerwünscht sein?
Ist wohl eher das Gegenteil der Fall...
Du meinst wohl dass es sich um Pseudozufallszahlen handelt...

Birki
29-01-2009, 15:24
Nein, meine ich nicht. Außer es ginge um kryptographische Anwendungen, da braucht man echte Zufallszahlen. Dass es Pseudozufallszahlen sind, ist in der Simulation oft sogar erwünscht, da mittels Generator-Initiierung reproduzierbar.

Man braucht meistens normalverteile o.ä. Zufallszahlen.
oiso, kinder!

z. B. die C-funktion "rand" liefert pseudozufallszahlen, deren reproduzierbarkeit unterbunden werden kann, indem man mit "srand" einen variierenden seed wählt, z. B. indem man einen teil des aktuellen datums nimmt, oder eine zufallszahl aus /dev/rand

eine beliebige verteilung erhält man am einfachsten, indem man mit der sog. "shooting method" zwei gleichverteilte zahlentupel erwürfelt und dann schaut, ob dieses tupel innerhalb oder ausserhalb der verteilungskurve liegt. damit kann man sich normal- poisson, T oder binomialverteilunge basteln wie man will

:p

lg
birki

wildflowersoul
29-01-2009, 15:46
Wenn du jetzt vielleicht noch eine Lösung wüßtest, daß ich das Programm nicht ein jedes Mal neu starten müßte...:)
Quasi einen Button für nocheinmal oder so ähnlich.


Your wish is my command ;)


randomize
do until Return = vbCancel
Zahl = rnd * 216 + 1
Return = msgbox (int(Zahl), vbRetryCancel)
loop

R.C.
29-01-2009, 18:04
z. B. die C-funktion "rand" liefert pseudozufallszahlen, deren reproduzierbarkeit unterbunden werden kann, indem man mit "srand" einen variierenden seed wählt, z. B. indem man einen teil des aktuellen datums nimmt, oder eine zufallszahl aus /dev/rand

Mit anderen Worten: indem du eine Zufallszahl (naja, mehr oder weniger) zum seeden verwendest :).

wo-ufp1
29-01-2009, 18:36
[...]
z. B. die C-funktion "rand" liefert pseudozufallszahlen,
[...]
"shooting method" zwei gleichverteilte zahlentupel erwürfelt und dann schaut, ob dieses tupel innerhalb oder ausserhalb der verteilungskurve liegt.
Danke. Alles klar :zwinker:


Your wish is my command ;)
Herzlichen Dank :klatsch: .
Vergelts Euch :toll: !

mfg wo-ufp1

andreas999
29-01-2009, 20:25
Echte Zufallszahlen sind schwer; ein relativ sicheres Mittel ist das Auswerten von Mauseingaben (Benutzer soll die Maus irgendwie bewegen, zu 'zufällig' gewählten Zeitpunkten Seeds aus der Mausrichtung berechnen). Das wird aber zu umständlich für dein Problem sein. Eine andere Methode wäre das Auslesen der Zeit zwischen zwei Tastatureingaben, geht aber nur wenn die Auflösung hoch genug ist (ms oder höher)

wildflowersoul
30-01-2009, 07:44
Und wieso sagt dem wo-ufp keiner, daß der Mist, den ich da zusammenschreibe nicht eine Zahl von-bis sondern zwischen 1 und 216 ausgibt?

Wolfgang, wenn die 216 auch als Ergebnis vorkommen soll, dann mußt du das script so abändern, wie ich das mittlerweile auch getan hab.

:s:

maosmurf
30-01-2009, 09:01
randomize
do until Return = vbCancel
Zahl = rnd * 215 + 1
Return = msgbox (int(Zahl), vbRetryCancel)
loop mal 215, damit ists 1-216.

@wolfgang: kannst du kurz schildern, wozu du das brauchst?
zur not code ich dir schnell was "gscheites" zsamm

krusher
30-01-2009, 09:09
Ich erzeuge normalverteilte Zufallszahlen recht schnell in R mit rnorm().

geht mit excel und diesem analysepluginteil auch ganz einfach, man muss einfach nur die gewünschte verteilung samt parametern eingeben, die anzahl, wieiviele zufallszahlen man haben will und los gehts...

wildflowersoul
30-01-2009, 09:26
mal 215, damit ists 1-216.

@wolfgang: kannst du kurz schildern, wozu du das brauchst?
zur not code ich dir schnell was "gscheites" zsamm

Na eben nicht, oder bin ich jetzt wirklich schon total unzurechnungsfähig?! (Wär ja auch kein Wunder, irgendwie *gg*)

Also nochmal zum Mitdenken. rnd() gibt eine 'Zufallszahl' < 1 aus. Wenn ich mit 215 multipliziere komm ich auf höchsten 214,9999... + 1 wäre maximal 215,999 - und (das ist das entscheidende) int() schneidet meines Wissens in VB-Script einfach alle Nachkommastellen ab - daher muß ich sehr wohl mit 216 multiplizieren in dem Fall.

ODER???

wildflowersoul
30-01-2009, 09:31
Siehe das "+1"

Ja eben. Das brauch ich ja gerade deswegen, weil int() NICHT auf- und abrundet, sondern alles nach dem Komma ignoriert. Oder spinn ich jetzt?

Na sicher, wenn ich einen Würfel simulieren will, muß ich in dem script auch mit 6 multiplizieren und +1 rechnen, weil ich sonst nur Ausgaben bis 5 bekomme.

Ich bin echt schon ganz deppert scheinbar... :f::f:

Birki
30-01-2009, 10:43
nt() schneidet meines Wissens in VB-Script einfach alle Nachkommastellen ab

hallo!
ich programmier ehrlich gesagt nur ernste sachen ;) - aber das ist ein typecast, der schneidet einfach den nachkommateil ab ...
lg
birki

PS: und wo bleiben jetzt die poissonverteilten zufallszahlen ? :p

wildflowersoul
30-01-2009, 10:47
hallo!
ich programmier ehrlich gesagt nur ernste sachen ;)

Ich programmier normal nix, aber für solche Spielerein reicht's grad noch. Manchmal ;)

(Ich hab ja sowieso mit einer Watschenverabreichung von den Experten gerechnet, weil ich überhaupt gewagt habe etwas so profanes wie VB-Script für Windows verwendet zu haben... *g*)

Birki
30-01-2009, 10:59
(Ich hab ja sowieso mit einer Watschenverabreichung von den Experten gerechnet, weil ich überhaupt gewagt habe etwas so profanes wie VB-Script für Windows verwendet zu haben... *g*)

... ich seh nochamal grosszügig drüber hinweg :p
lg
birki

maosmurf
30-01-2009, 11:02
Na eben nicht asso. hm. was solls, VB halt :p


OT: ich fang grad mit CUDA (http://www.nvidia.de/object/cuda_what_is_de.html) an :jump:

AB
30-01-2009, 11:50
OT: ich fang grad mit CUDA (http://www.nvidia.de/object/cuda_what_is_de.html) an :jump:

Viel Spaß! :devil:

maosmurf
30-01-2009, 11:56
Viel Spaß! :devil: wieso?

find das thema recht spannend :)

sind mit n paar freunden auch am üebrlegen, ob wir GMP (rechnen mit unendlich großen zahlen) auf CUDA porten sollen... :)

wo-ufp1
02-02-2009, 19:58
@wolfgang: kannst du kurz schildern, wozu du das brauchst?
zur not code ich dir schnell was "gscheites" zsamm
Danke Adam.
Es geht nur darum, aus einem Fragenkatalog mit zugehöriger Nummer, eben 1-216, eine und dann wiederholend eine auszuwählen.

Ist für gelegentliches alleine lernen nicht unpraktisch, als wenn man sich selbst eine Zahl ausdenken oder "herum"blättern muß.
Also nichts hochwissenschaftliches :).


(Ich hab ja sowieso mit einer Watschenverabreichung von den Experten gerechnet, weil ich überhaupt gewagt habe etwas so profanes wie VB-Script für Windows verwendet zu haben... *g*)
Ähm, danke, aber ich kenn (kannte) nur Logo :D.

Aber wenn du dir die Arbeit in Assembler oder Pascal (gibts die noch?) antun willst...;)

wo-ufp1
03-02-2012, 12:56
Hi.
Ich verwende das "Programm" noch immer :).

Nun würde ich aber gerne nach einer Erweiterung suchen.

Und zwar habe ich in Word Nummerierungen gemacht:


Rad
Bike
Test
Muster
Schwachsinn
Sinnvoll
Bla Bla
Bla Blub
und
so
weiter

Jetzt würde ich gerne zu der Nummer springen, die mir das Programm zufällig ausgewählt hat.
Geht das bzw gibts so ein Programm?

Ich kann zwar mit der Suche zu bestimmten Inhalten springen, aber leider lassen sich diese Nummerierungen nicht auffinden.
Dh ich kann zwar 10 eingeben, aber er findet nicht die Nummerierung dazu :(.