Just nu i M3-nätverket
Gå till innehåll

10 randomize med unika nummer!


Benni Svensson

Rekommendera Poster

Benni Svensson

Jag skulle behöva ett tips på hur jag gör 10 st randomize med unika numer. Själva randomzien är ju inte så svår:

 

For i = 1 TO 10

Randomize

Slumptal = Int(Rnd * 45) +1

Next

Detta betyder ju att den skall välja mellan 1 -45,

men problemet är att numren får inte upprepas, dom måste vara unika.

Någon som vet?

Länk till kommentar
Dela på andra webbplatser

Joakim Andersson

Jag skulle också gärna ha en smidig lösning på detta. Som jag har gjort så har jag lagt in de nummer som jag får i en array och varje gång har jag slumpat tills jag får ett tal som inte redan finns med i arrayen men detta får mycket hög komplexitet och om man tex skapa slumpa fram 1-10 i en slumpvis ordning så kan den ju stå och tugga i alla evighet om man har otur!

Länk till kommentar
Dela på andra webbplatser

Det finns en särskild komponent för det som skapar en GUID, Global Unique Identifier".

Sök på microsofts websida eller ngn annanstans efter GUID eller guid.dll. Du måste hämta hem en dll-fil för det och regga den innan det fungerar.

Om du använder dig av detta så kommer du alltid att få unika värden, och du behöver inte knacka någon randomizer-kod.

 

/Fresh

Länk till kommentar
Dela på andra webbplatser

Benni Svensson

Jag har hållit på hela dagen och letat på Microsoft, men inte hittat komponenten som du beskriver.

Jag hittade lite om den, men det gällde nog mest SQL-server!!!

Min tur i livet.

Jag skulle å andra sidan också vara intresserad av att ta del av koden som det föregående inlägget hadde.

Länk till kommentar
Dela på andra webbplatser

Benni Svensson

Jag har löst det hela själv.

Jag fick nog till det lite klumpigt, men jag har lagt allting i Sessions, och det går så snabbt att jag måste ha 10 decimaler för att mäta hur lång tid det tar.

Jag får iallafall ut 10 unika numer.

Länk till kommentar
Dela på andra webbplatser

champagnegossen

Ett rätt smart sätt är att bygga en array med nummer från 1 till 10. Sedan slumpar man fram ett tal mellan ett och antalet enheter i arrayen. Ta resultatet, lägg in det som första enhet i en ny array, och radera det från den första arrayen. Fortsätt tills den första arrayen är tom. Då har du en ny array med talen 1-10 i slumpvis ordning.

Tyvärr har jag ingen aning om hur man kodar detta i ASP, men den här metoden brukar jag använda i Lingo.

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Enklare är nog att skapa en array på 45 positioner och nolla den. Om du sedan exempelvis slumpar fram 15 kollar du pos 15 i arrayen. Är den noll lägg in värdet i positionen, om inte slumpa en gång till. Kör detta i en loop som går 10 varv.

 

Sen är det bara att loopa igenom arrayen och skriva ut de positioner som inte innehåller 0 och du har fått ut din slumplista

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...