Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-07-2005, 14:09   #1 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 14
Cool Array mit Zufallszahlen ohne Dopplung!

Da mir viele Skripte hier, zu diesem Thema, zu kompliziert aussahen, hab ich mal mein eigenes entwickelt. Es ist meiner Meinung nach einfacher als alles, was ich bisher hier gefunden habe und es erfüllt seinen Zweck.

Variablen "anz" und "liste" wie gewohnt deklarieren.

ActionScript:
  1. on (release) {
  2.     for (i=0; i<=anz; i++) {
  3.                 // Dem Array "liste" wird eine Zufallszahl zugewiesen.
  4.         liste[i] = random(anz+1);
  5.                 // Schleife zum Testen, ob Wiederholungen auftreten.
  6.         for (j=1; j<=i; j++) {
  7.             if (liste[i] == liste[i-j]) {
  8.                 liste[i] = random(anz+1);
  9.                                 // Testschleife wird von Neuem gestartet
  10.                 j = 0;
  11.             }
  12.         }
  13.     }
  14.     trace("Liste: "+liste);
  15. }

Kleiner Nachtrag:
random(anz+1): Die +1 MUSS da stehen bleiben. Andernfalls hängt sich Flash auf.

Geändert von G-SYS (20-07-2005 um 14:26 Uhr)
G-SYS ist offline   Mit Zitat antworten
Alt 20-07-2005, 16:42   #2 (permalink)
seltener Gast
 
Benutzerbild von c-lex
 
Registriert seit: Feb 2002
Ort: München
Beiträge: 352
Mit einer kleinen Einschränkung:
Braucht zu lange, dadurch timeout bei größeren Arrays.
__________________

Gerechtigkeit ist tätige Wahrheit. (Joubert)

Achim Eifohn

c-lex ist offline   Mit Zitat antworten
Alt 20-07-2005, 19:56   #3 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 14
Hm. Welche Möglichkeiten könnten das verhindern?
G-SYS ist offline   Mit Zitat antworten
Alt 20-07-2005, 20:21   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
z.b.
ActionScript:
  1. var cAnzahl = 100, minAbst = .001;
  2. // bei minAbst=0 sind gleiche Zahlen möglich
  3. var vArray = [Math.random()];
  4. //
  5. for (var v = 1; v<cAnzahl; v++) {
  6.     vArray.push(vArray[v-1]+Math.random()+minAbst);
  7. }
  8. var vTeiler = vArray[cAnzahl-1]+Math.random()+minAbst;
  9. for (v=0; v<cAnzahl; v++) {
  10.     vArray[v] /= vTeiler;
  11. }
  12. //
  13. trace(vArray.join('\\r'));
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (20-07-2005 um 20:23 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 21-07-2005, 09:45   #5 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 14
Yo! Und genau sowas versetzt mir 'nen Schrecken.
Da schau ich wie'n Schwein ins Uhrwerk.
G-SYS ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele