[GELÖST] Schleifen Problem

Anfängerfragen zum Programmieren mit PureBasic.
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

[GELÖST] Schleifen Problem

Beitrag von Tompazi »

Ich möchte das es 256 MyKeys gibt mit den Werten 0 - 255 aber jeder Wert soll nur einmal vorkommen. (und die Werte sollen zufällig and die MyKeys gerichtet werden also nicht MyKey(100) = 100)

Ich habe es so Versucht:

Code: Alles auswählen

    Dim MyKey.l(255)
     For a = 0 To 255
      MyKey(a) = Random(254)
      For b = 0 To a
       If MyKey(b) = MyKey(a)
        MyKey(a) = MyKey(a) +1
       EndIf
      Next b
Debug mykey(a)
     Next a
Aber so gibt es noch immer welche doppelt.

Wie mache ich das?

lG Tompazi
Zuletzt geändert von Tompazi am 26.04.2008 19:00, insgesamt 1-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ganz einfach, mach erst mal das array voll und tausche dann die Einträge:

Code: Alles auswählen

Dim MyKey.l(255) 
For a = 0 To 255 
 MyKey(a) = a
Next a

;Mischen
For n = 0 To 255
 Swap MyKey(n) , MyKey(Random(255))
Next n

For a = 0 To 255 
 Debug MyKey(a)
Next a
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag von Tompazi »

Danke funktioniert jetzt.
Ich wäre nie auf diese Idee gekommen..
Mir fehlt einfach noch das Programmierverständniss.

lG Tompazi
Antworten