"We are back" « oc.at

C++ Random...

RoNin 23.06.2004 - 21:18 661 10
Posts

RoNin

Here to stay
Avatar
Registered: Sep 2003
Location: CH, Au SG
Posts: 1113
Hi!
Ich muss von der Schule aus C++ Programmieren (aber nur Konsole) und jetzt brauch ich nen Random zwischen 2 von mir vorgegebenen (ganzen) Zahlen und die Ausgabe von diesem in ganzen Zahlen.

Hab schons MSND Library gecheckt, find aber nix.

Kann mir bitte mal jemand den Code für so was posten ????

tia
mfg
RoNin

hanzi

flawless victory.
Registered: Nov 2002
Location: ~
Posts: 2621
Bearbeitet von hanzi am 23.06.2004, 21:29

boogeyman

Bloody Newbie
Avatar
Registered: Mar 2003
Location: Wien
Posts: 1176
http://www.google.at/search?q=c%2B%...Suche&meta=

Manchmal hilft sogar Google... :rolleyes:

RoNin

Here to stay
Avatar
Registered: Sep 2003
Location: CH, Au SG
Posts: 1113
Sorry i check des net...

Kann mir mal bitte einer den Code schreiben ?
Ich brauche:

Nen Random zwischen versch. Zahlen die in einem Array (eindimensional) gespeichert sind und diese Zahl dann in eine Variable ausgegeben.

tia

Smoldi

rape diem
Avatar
Registered: Oct 2000
Location: Wien
Posts: 1371
wie gründlich hast du die msdn library gecheckt?

CryptGenRandom ist in deinem fall zwar etwas umständlich, aber es funktioniert und es ist produziert zufälligere zufallszahlen als rand() ;).

wenn du so einen minimalcode nicht selbst schreiben kannst würde ich dir einen wechsel in eine nicht it bezogene schule nahelegen.
Bearbeitet von Smoldi am 23.06.2004, 21:54

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9842
muss für die uni ein c++ projekt machen, kann mir bitte einer den code schreiben?

tia

---

also bitte...mehr als die links wo eh schon beispiel code vorhanden ist kannst du wirklich net verlangen

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
naja, ein bishen mitdenken mußt du schon - wir sind ja nicht deine coding-biatches....

wie du sicher schon in den links oben nachgelesen hast, liefert rand() bzw random() eine zahl zwischen 0 und der konstante RAND_MAX (beides inkl).

was an arbeit übrig bleibt, ist es auf einen bestimmten wertebereich zu skalieren. das macht man gewöhnlich mit einer division, und addiert dann den anfangsoffset... da wir hier im ganzzahligen bereicht aggieren, kann man aber durch ungeschickte wahl der reihenfolge bzw durch überläufe leicht unangenehme überraschungen erleben, weshalb ich anfängern folgende "billige" methode empfehlen würde:
zufallszahl im bereich a..b = a + (zufallszahl modulo (b-a))
wobei a<b und b-a <= RAND_MAX

was passiert? intuitiv könnte man das so erklären: die modulo-operation beschränkt die zufallszahlen auf einen bestimmten bereich, die addition verschiebt den bereich dann an die entsprechende stelle der zahlengeraden.

ok ok.. ist mathematisch nicht ganz 100% korrekt, weil bei der "faltung" des wertebereichs die werte nicht mehr zwangsweise gleichverteilt sind, aber das wird in dem fall wohl kaum eine rolle spielen, und die abweichung ist umso kleiner, je größer das verhältnis RAND_MAX : b-a und imho für solche 08/15 aufgaben vernachlässigbar.

Buchreferenzen gibts zb in der GNU man page ztu rand() und srand().

RoNin

Here to stay
Avatar
Registered: Sep 2003
Location: CH, Au SG
Posts: 1113
jaja...der Random iss net das Problem, das Problem ist jetzt dass ich nen Random zwischen den Werten eines Arrays will/brauch

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
Die Art deiner Fragestellung erinnert mich an das hier:

Zitat
Wir verhalten uns allerdings (und das soll keine Entschuldigung sein) feindselig Leuten gegenüber, die nicht willens zu sein scheinen, selbst zu denken und ihre Hausaufgaben zu machen, bevor sie ihre Fragen stellen. Solche Menschen sind ein Fass ohne Boden, sie nehmen, ohne etwas zurück zu geben und verbrauchen Zeit, die mit interessanteren Fragen und Personen, die eher eine Antwort verdient hätten, besser verwendet wäre. [...]

Wir sind (überwiegend) Freiwillige. Wir verwenden Zeit unseres beschäftigten Lebens dafür, Fragen zu beantworten, und manchmal werden diese einfach zu viel. Deshalb wird rücksichtslos gefiltert. Genauer gesagt, wir eliminieren Fragen von Leuten, die sich wie Loser ausnehmen und verwenden die gewonnene Zeit effizienter mit anderen.

Wenn Du dieses Verhalten für widerlich, herablassend oder arrogant hältst, denk noch einmal darüber nach. Wir wollen nicht, dass Du vor uns nieder kniest – im Gegenteil, den meisten von uns wäre nichts lieber, Dich als Gleichen unter Gleichen zu behandeln und Dich in unserer Kultur willkommen zu heißen, wenn Du Dir die Mühe machst, das zu ermöglichen. Aber es ist für uns einfach nicht tragbar, Leuten zu helfen, die nicht gewillt sind, sich selber zu helfen. Es ist OK, nicht alles zu wissen; es ist nicht OK, sich dumm zu stellen.

Während es nicht notwendig ist, bereits technisch kompetent zu sein, um unsere Aufmerksamkeit zu erlangen, ist es nötig, die Art von Verhalten zu zeigen, mit der man sich Wissen aneignet – Geistesgegenwart, Bedachtheit, Aufmerksamkeit, den Willen, ein aktiver Partner bei der Entwicklung einer Lösung zu sein.

Hier ist der ganze Text, du solltest ihn möglichst bald lesen:

http://www.lugbz.org/documents/smart-questions_de.html

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
ahh.. nice, eine deutsche übersetzung vom text vom esr :)

@RoNin: es steht alles oben drin.

RoNin

Here to stay
Avatar
Registered: Sep 2003
Location: CH, Au SG
Posts: 1113
tjo, danke allerseits, hat sich erledigt, hatt gestern nen schlechten Tag, heut ist alles klar ... :D
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz