URL: https://www.overclockers.at/coding-stuff/req-programm-fuer-zufaellige-sitzordnung_237575/page_1 - zur Vollversion wechseln!
Guten Abend zusammen,
ich bin mir nicht sicher ob ich hier richtig bin, falls nicht bitte verschieben 
Ich benötige ein kleines Programm, das mir für zehn Personen eine zufällige Sitzordnung ausspuckt. Vielleicht hat jemand soetwas ja eh rumliegen oder wäre bereit dazu, das "mal eben" (?) zu programmieren.
Konkret geht es um unseren Kegelclub und es handelt sich immer um die selben Personen. Mir würde es schon reichen, wenn die Namen den Zahlen 1 bis 10 zugeordnet werden, benötige also nichts grafisches.
Ich habe keine Ahnung wie groß der Aufwand für soetwas ist, deswegen halte ich meine Ansprüche gering.
Die Extended Version wäre dann mit Gastkeglern, bzw. austauschbaren Namen und einer grafischen Ansicht, aber das hat wirklich keine Priorität!
Vielen Dank schon mal falls sich jemand dazu berufen fühlen sollte 
lG
D-Man
Zitat von D-ManZahlen 1 bis 10 zugeordnet werden, benötige also nichts grafisches.
reicht dir auch ein link?
http://www.random.org/sequences/?mi...tml&rnd=new
----------edit------------
too late.....
theoretisch ja
mir ist als war ich auf der seite, wieso hab ich das denn nicht gesehen
so muss ich nur mit nem überlappenden fenster die namen daneben setzen und fertig 
mal im (java angelehnten)pseudocode, falls du doch noch selbst ein script o.ä. schreiben (lernen) willst:
Code:public void main(String[]args){ int numPlayers = 10; Queue<Integer> playerQueue = new Queue<Integer>(); List<Integer> alreadyChosenSeats = new ArrayList<Integer>(); Random rand = new Random(); for(int i = 0; i < numPlayers; i++){ playerQueue.add(i); } while(!q.isEmpty()){ int newSeat; do{ newSeat = rand.nextInt(numPlayers); }while(alreadyChosenSeats.contains(newSeat)); alreadyChosenSeats.add(newSeat); System.out.println("player "+q.pop()+" on seat: "+newSeat); } }

Code:public void main(String[]args){ int numPlayers = 10; Random rand = new Random(); int[] seat = new int[numPlayers]; for (int i = 0; i < seat.length; i++){ seat[i]= i; // array initialisieren mit den spielernummern } for (int i = 0; i < seat.length; i++){ int newPos = i + rand.nextInt(seat.length - i); int temp = seat[newPos]; seat[newPos] = seat[i]; seat[i] = temp; } }
Zitat von AeefireDas geht natürlich noch viel performanter (besonders um die vielen random aufrufe zu verhindern, wenn nurmehr wenige sitzplätze über sind usw.) aber das würde das ganze jetzt unnötig verkomplizieren

Zitat von thatNachdem ich diesen Unfug in jungen Jahren auch mal gemacht habe, würde ich eher zu einem Verfahren mit linearer Laufzeit raten, das sogar viel einfacher ist.
- Einmal von vorne bis hinten durchs Array gehen
- Für jeden Eintrag: Berechne eine zufällige Position zwischen diesem "Slot" und dem letzten (jeweils inklusive) und vertausche den Eintrag mit dem an der gewählten Position
- Fertig!

Also selber Programmieren wollte ich nicht, das hat mir früher schon nicht gelegen

Zitat von smashItreicht dir auch ein link?
http://www.random.org/sequences/?mi...tml&rnd=new
----------edit------------
too late.....

Zitat von Smutziemlich random
war jetzt sicher bei 5/10 versuchen die nummer 10 an 1. stelle - aber ja - für dein vorhaben reicht es sicher.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025