[gelöst] Rnd() Problem -1

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] Rnd() Problem -1

Re: [gelöst] Rnd() Problem -1

von clag » Fr, 11.10.2013 08:29

Hallo F3K Total und andere Leser,

mein Jubel zu dem Lösungsvorschlag war voreilig ;)

das Problem war nicht die fehlende Definition = int ( sondern ein ganz schlichter, peinlicher Fehler in der Formel
denn im Fall das rnd = 0 liefert entstand das Problem,
weil es ist nun mal Fakt 0*99-1=-1 im Gegensatz zu 0*(99-1)=0

Also, anstelle der Formel

Code: Alles auswählen

 rand1 = rnd*myAnzahl-1 
nimmt man

Code: Alles auswählen

 rand1 = rnd*(myAnzahl-1)
und schon ist alles gut

outsch :lol:

Re: Rnd() Problem -1

von clag » Do, 10.10.2013 21:07

Hallo F3K Total,

ja, dein Tip war die richtige Medizin,
jetzt funktioniert es ohne Aussetzer -1 taucht nicht mehr auf.

Danke

Re: Rnd() Problem -1

von F3K Total » Do, 10.10.2013 20:43

Hi Clag,
clag hat geschrieben:Meine Methode Ganzzahlen zu erhalten durch festlegen der Variablen auf integer ist vieleicht nicht ganz sauber?
Vielleicht versuchst Du es mal so:

Code: Alles auswählen

  rand1 = int (rnd * myAnzahl)
  rand2 = int (rnd * myAnzahl / 2)
Gruß R

[gelöst] Rnd() Problem -1

von clag » Do, 10.10.2013 20:06

Hallo Leutz,

nachdem ich mich nun lange mit BubbleSort beschäftigt habe und alles sortiert iss was zu sortieren war :lol:
muss ich nun wieder etwas Unordnung erzeugen
dazu verwende ich Basic Funktion Rnd die eine Zufallszahl 0-1 generieren soll und den folgenden Code

Code: Alles auswählen

dim rand1 as integer
dim rand2 as integer

for m=1 to myAnzahl
  rand1 = rnd*myAnzahl-1
  rand2 = rnd*myAnzahl/2
  'print rand1 & ";" & rand2
  chkcell.string = rand1 & ";" & rand2
  chng1 =	mData(rand1)
  chng2 =	mData(rand2)
  mData(rand1) = chng2
  mData(rand2) = chng1
next m
im Prinzip funktioniert diese DatenMischschleife auch prima, solange ich die Zeile mit der print Anweisung aktiv ist und alles langsam abläuf,
lass ich die Schleife ohne print im Schnelldurchlauf mischen gibt es oft Fehler weil eine Zufallszahl -1 ausgegeben wird und damit kann man ja kein array ansprechen.
Meine Methode Ganzzahlen zu erhalten durch festlegen der Variablen auf integer ist vieleicht nicht ganz sauber?

Die Frage ist wie kommt ein -1 zustande und wie verhindere negativ Werte, es soll aber auch 0 erzeugt werden also ein simples +1 tut es nicht?

Nach oben