Announcement

Collapse
No announcement yet.

array elemente zufällig anordnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • array elemente zufällig anordnen

    ich habe folgendes prob:
    ich hab einen array mit 18 elementen, der mit zufallszahlen gefüllt werden soll. dabei ist es jedoch wichtig, wie oft welche zahl darin vorkommt. ich habe versucht, mir selbst eine routine zu schreiben, hab mich jedoch hoffnungslos verzettelt und würde nun gerne wissen, ob es eine einfache möglichkeit gibt, arrayelemente durcheinander zu würfeln, oder ob ich nochmal von vorn anfangen muss
    gruss
    chris

  • #2
    Im Prinzip einfach das Sortieren umdrehen. Das array geordnet fuellen, dann zwei Array-Positionen auswuerfeln (mit Random) und die beiden Elemente austauschen. Das Ganze oefters machen. Zu gut Deutsch: Mischen

    Comment


    • #3
      sowas in der art wollte ich ja machen, nachdems andersrum nicht funktioniert hatte. hmmm so einfach kanns sein <BR>
      vielen dank, ich werd s so mal probier

      Comment


      • #4
        oje ... war das EINFACH! man kann sich schon blöd anstellen, danke nochmal

        Comment


        • #5
          Noch mal zum Thema "Mischen". Ich mache das immer so, daß ich eine Liste habe. Mit Random(Liste.Count) wähle ich zufällig ein Element aus. Das lösche ich anschließend. Damit verringert sich Liste.Count um 1. Das mache ich in einer Schleife, bis die Liste leer ist. Damit habe ich die Gewißheit, daß ich keine Element doppelt gewählt habe und ich habe auch keinen Schritt umsonst gemacht.
          Beispiel-Quellcode:http://www.delphi-download.de/k.php siehe Grundgerüst Kartenspiel.

          mfg Klaus-Pete

          Comment


          • #6
            Man kann aber auch die Liste umsortieren und trotzdem dabei mit dem gleichem Aufwand rechnen. Dabei wird einfach aus Count Elementen eines per Zufall ausgewählt und ans Ende der Liste verschoben. Im nächsten Schritt wählt man eines aus Count -1 und im nächsten eines aus Count -2 usw. usw.<br>
            Wenn nun das Umsortieren in der Liste schneller ist als das entfernen dann lohnt sich diese Methode.

            Gruß Hage

            Comment

            Working...
            X