Random - doppelte vermeiden
Was ist hier falsch??
—-
let myZ := 1 + floor(9 * random());
if (select RANDOM1ERWEITERT)[Zufallszahl = myZ] > 1 then
alert("Achtung, diese Zahl existiert bereits");
Zufallszahl := null
else
Zufallszahl := myZ;
alert("Alles i. O. ")
end
—-
erzeugt einstellige random Zahlen, aber verhindert nicht doppelte
Wolfgang
4 Antworten
-
Du hast vergessen die Datensätze zu zählen:
let myZ := 1 + floor(9 * random());
if cnt((select RANDOM1ERWEITERT)[Zufallszahl = myZ] )> 1 then
alert("Achtung, diese Zahl existiert bereits");
Zufallszahl := null
else
Zufallszahl := myZ;
alert("Alles i. O. ")
end—-
Leo
-
Hallo Leo, sorry habe ich durch das probieren hier vergessen wieder reinzuschreiben. Genau so wie Du es jetzt geschrieben hast, habe ich es gleich zu Anfang probiert und er gibt mir dennoch doppelte aus. Trigger ist bei neuem Datensatz drin.
Wolfgang
-
let myZ := 1 + floor(9 * random());
Zufallszahl := myZ;
if cnt((select RANDOM1ERWEITERT)[Zufallszahl = myZ] )> 1 then
alert("Achtung, diese Zahl existiert bereits");
Zufallszahl := null
else
Zufallszahl := myZ;
alert("Alles i. O. ")
end -
Leo, danke,das war es. Wolfgang
Content aside
- vor 5 JahrenZuletzt aktiv
- 4Antworten
- 1234Ansichten