WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 03.03.2002, 19:18   #11
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard @JosefS

vielen dank, deine tipps waren entscheidend:
erstens natürlich der fehler, daß ich nur zahlen von 0-14 generiert habe, jedoch von 0-15 abgefragt habe (soviel zur endlosschleife) und 2. noch

Code:
for(int i=0; i<vorhanden; i++)
macht natürlich mehr sinn, nicht grundsätzlich den gesamten arrayinhalt abzufragen, sondern nur jene felder, die bereits mit gewünschen werten belegt wurden, bringt viel performance.

obwohl diese nunmehr relativ flott läuft, fällt jemandem eine einfachere lösung ein, um ein array wie gewünscht mit randomwerten zu füllen?

vielen dank nochmal für alle antworten.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 03.03.2002, 19:29   #12
Sesa_Mina
Schwarzfußfrettchen
 
Registriert seit: 28.01.2001
Beiträge: 2.071


Standard

Ich schreib das hier mal als basic code her aber umsetzen sollt ja ganz ganz easy sein
Code:
   dim array(15) as byte
   for x=0 to 15:array(x)=x:next
   for x=0 to 15
      y=int(rnd*16)
      z=int(rnd*16)
      a=array(y):array(y)=array(z):array(z)=a
   next
Damit hast mal ein geordnetes array in dem nachher 16 mal zwei der Werte vertauscht werden. Damit hast recht einfach und vor allem schnell ein durcheinandergewürfeltes array das nur gewünschte zahlen enthält und ausserdem keine doppelt. Somit sparst dir an haufen überprüfungen usw.
____________________________________
Wann die kan Almdudler ham... \"Es gibt nur einen Weg zur Lunge, und der muss geteert werden, damit der Krebs nicht stolpert!\"
http://www.dream.at/gizmo/bunny.gif
Image is © 2001 Merle
Sterndalsäg.. ähh... jäger
Sesa_Mina ist offline   Mit Zitat antworten
Alt 03.03.2002, 19:58   #13
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard sorry

aber aus dem code werd ich nicht recht schlau, hatte nie was mit basic zu tun.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 03.03.2002, 20:03   #14
moorhahn
Veteran
 
Registriert seit: 26.12.2000
Beiträge: 489


moorhahn eine Nachricht über ICQ schicken
Standard

zuerst wird das feld von 0 bis 15 angefüllt, in das feld 0 wird 0 geschrieben, in das 1. 1, ...... . dann werden die inhalte irgendwie durcheinandergewürfelt, aber es werden keine neuen zahlen mehr ins feld geschrieben.
____________________________________
Wenn Null ganz besonders gross ist, ist es schon fast so viel wie ein kleines bisschen Eins... - (Kommentar zum Thema Rundungsfehler bei Fliesskommazahlen).
moorhahn ist offline   Mit Zitat antworten
Alt 03.03.2002, 20:07   #15
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard

das prinzip ist simpel und mir auch schon durch den kopf gegangen, nur hab ich keine ahnung, wie ich das durcheinanderwürfeln mit java anstelle.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 03.03.2002, 20:12   #16
moorhahn
Veteran
 
Registriert seit: 26.12.2000
Beiträge: 489


moorhahn eine Nachricht über ICQ schicken
Standard

etwa so:
Code:
// zuerst das feld mit zahlen anfüllen

//durcheinanderwürfeln
int a,b,c
for (int i=0;i<15;i++) {
  a=(int)(Math.random()*16);  
  b=(int)(Math.random()*16);  

  // dreieckstausch
  c=feld(a);
  feld(a)=feld(b);
  feld(b)=c;
}
____________________________________
Wenn Null ganz besonders gross ist, ist es schon fast so viel wie ein kleines bisschen Eins... - (Kommentar zum Thema Rundungsfehler bei Fliesskommazahlen).
moorhahn ist offline   Mit Zitat antworten
Alt 03.03.2002, 20:19   #17
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard hmm

ok, das leuchtet ein, geht kein wert verloren und die werte werden zufällig miteinander vertauscht, umso mehr, je länger man die forschleife durchlaufen läßt.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
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.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:39 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag