2000 Zahlen in zufällige Reihenfolge bringen

nJoy

Cadet 3rd Year
Registriert
Mai 2006
Beiträge
43
hallo zusammen!

ich habe folgendes problem:

ich muss 2000 zahlen in ein programm eingeben, welches mir diese in zufälliger reihenfolge wieder ausgibt. hat jemand eine idee wie und mit welcher programmiersprache man das machen könnte? oder gibt es so ein programm schon?

bin hilflos :(

nJoy
 
Also in Programmiersprachen kannste das sicherlich in jeder machen! Ist größteils ne Frage des Geschmacks welche du dazu benutzt. Wichtiger für die Programmierung an sich (und dadurch sicherlich auch ne Beschränkung auf Programmiersprachen) wäre dann schon eher die Art der Eingabe, Ausgabe und die Komplexität des Mischens.

Ein derart fertiges Programm dafür kenne ich nicht. Bin aber überzeugt, dass man das in nen paar Minuten zusammenprogrammiert hat :) Es bietet sich z.B. an einfach eine Liste in einer Text datei zu erstellen und dann die Zeilen von nem programm durch würfeln zu lassen.
 
also ich kenn mich mit java aus. müsste ich dann alle 2000 zahlen in einen array eingeben und diesen dann mit einem zufallsgenerierten ausgabe mechanismus ausgeben? oder so ähnlich?
 
da ich nur c kann, würde ich es natürlich auch in c mache, aber java gleicht ja c ein bischen, brauchst halt einen guten zufalls-algorithmus der die zahlen ausgibt ..

mfg

//edit: ein vektor der die zahlen aus einer txt-datei ausliest, dann durcheinandergewürfelt in einen neuen vektor schreibtn, der dann wiederum ausgegeben wird
 
Zuletzt bearbeitet von einem Moderator:
und wo bekomme ich so einen her? also ich hab keine lust mich da 3 stunden für hinzu setzten...muss es doch bestimmt irgendwo im net geben oder nicht? ich hab mal gegoogelt aber da finde ich nix was auf mein problem zutrifft -.-

mfg njoy

//edit: bei wikipedia finde ich nur formeln für zufallsgeneratoren, welche ja nur zahlen erzeugen nicht die reihenfolge ändern -.-
 
Zuletzt bearbeitet:
Was du suchst nennt der Mathematiker eine zufällige Permutation.

In Pseudocode liesse sich das etwa so realisieren (K ist die Anzahl der Elemente, in deinem Fall also 2000):
Code:
for i = 1 to K: A[i] = i
for i = 1 to K–1:
  j = int_rand(i, K)// Zufallszahl {i, i+1,…, K}
  swap(A[i], A[j])  // Vertauschen der Werte
endfor
Quelle: http://ls11-www.cs.uni-dortmund.de/people/rudolph/teaching/lectures/FCI/WS2005-06/lec09.pdf

nJoy schrieb:
ich hab mal gegoogelt aber da finde ich nix was auf mein problem zutrifft
Man muss nur wissen, wonach man suchen muss, dann findet sich auch mit Google was ;)
 
da wirste auch nix finden denke ich mal.
und 3 stunden brauchste dafür auch net
den vektor definierste halt vorher im programm, einen zufalls-algorithmus wirste wohl ehr durch googlen oder so was finden, aber ein fertiges programm, dass genau dass kann was du willst wohl er weniger
 
schon mal vielen dank für die tipps werd mir da mal en paar gedanken zu machen und den grundaufbau schon mal fertig machen (struktogramm usw...). habt ihr denn einen tipp mit welcher programmiersprache das am besten gehen würde? bzw welches programm sollte ich benutzen???

mfg njoy
 
Die Programmiersprache ist egal, Hauptsache Sie verfügt über einen Zufallszahlengenerator bzw. Zugriff auf Zufallszahlen die vom Betriebssystem bereitgestellt werden (bspw. /dev/urandom unter Unix). Und das Programm wirst du wohl selbst schreiben müssen :evillol:
 
bei der wahl der programmiersprache kann ich dir net helfen, dass musst du dann schon selber entscheiden, welche du am besten kannst, und wo du es umsetzen willst
 
ich bin nicht der mega programmier king eher en ziemlicher newbie! ich kenne java aus 3 jahren schulinformatik. haben da aber mit sonen pillepalle programm (BlueJ) gearbeitet. du hattest ja den vorschlag aus ner txt die zahlen auslesen zu lassen und das kann bluej zum beispiel nicht. deswegen halt die frage mit welchem programm man txts auslesen kann und nachher auch wieder schreiben kann(und natürlich zwischendurch durcheinander würfeln lassen kann :D).


mfg njoy
 
also wenn du java schon seit 3 jahren hast , dann mach es doch auch dadrin ;)
such dir ein onlinetutorial ( gibts ja wie sand am meer ) und dann sucht halt nach den befehlen mit denen man txt datein ausließt, dann schreibste dir einen algorithmus der sie durcheinanderwürfelt und wieder ausgibt :watt: und schon haste es geschafft
 
Mein 1. Gedanke zur Lösung des Problems waren Staroffice oder Excel, eine Tabellenkalkulation bietet Bedienung und Übersicht ohne eine Zeile Code zu schreiben.
In die erste Spalte trägst du die Zahlen ein und in die 2. Spalte füllst du mit Zufallszahlen. Dann "sortierst" du nach den Zufallszahlen auf- oder absteigend. Fertig.
 
gute idee! wenn das klappt wäre das super nice ;)!
aber:
gibts in exel eine funktion, die die 2te spalte mit zufälligen zahlen füllt? wenn nicht wäre das dann genauso ein aufwand wie als wenn ich jede zahl auf einen zettel schreibe und die dann im raumf rumwerfe und dann aufsammle und aufschreibe :D

mfg njoy
 
Bei Staroffice hab ich gerade probiert, bei Excel heißt die Funktion (such) ZUFALLSZAHL(), die mußt du nur in die 1. Zeile setzen und dann nach unten Ausfüllen, findest du unter dem Menüpunkt Bearbeiten.
Die Datei mit den Zahlen Daten musst du als TXT/CSV öffnen.
 
hab das jetzt mal exemplarisch mal probiert. das problem ist wenn ich 2000 felder fülle mit der zufallszahl zwischen 0 und 1 und die sortieren will, dann sortiert der die zwar um aber nicht richtig aufsteigend. kann es sein das exel soviele zahlen nciht verarbeiten kann?
an meiner hardware wirds auch nicht liegen 2gb ddr2 pentium d 4ghz...

mfg njoy
 
Sollte Excel eigentlich mit Links machen, mal gucken ob ich das reproduzieren kann.

Edit: Der "Fehler" ist das Excel nach dem Sortieren neue Zufallszahlen generiert, ich habe ein Workaround gefunden, da ich bei Excel auf die schnelle keine Einstellung dafür finde.Dafür kopierst du die ganze Spalte mit den Zufallszahlen in die Zwischenablage und fügst nur die Werte, ohne Formeln, wieder in die Spalte. Dann kannst du die Werte sortierern lassen.
 
Zuletzt bearbeitet:
Das ist ein immer wiederkehrendes Problem. Das ist irgendwie sehr nervig bei Excel. Die Kopie in die Zwischenablage ist auch meine "Lösung" bei solchen Problemen. Gab es nicht früher mal die Option, ob man die Formatierungen etc. mitkopieren will (oder halt auch nicht)??
 
Zurück
Oben