Generování náhodných čísel v intervalu bez opakování – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Generování náhodných čísel v intervalu bez opakování – Visual Basic – Fórum – Programujte.comGenerování náhodných čísel v intervalu bez opakování – Visual Basic – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Jambi
~ Anonymní uživatel
3 příspěvky
11. 4. 2012   #1
-
0
-

Zdravím,

potřebuji v listu vygenerovat náhodně čísla do buněk v listu v intervalu a zajistit, aby se mi  čísla neopakovala. 

Generování čísel jsem zajistil takto , ale bohužel už jsem nepřišel na to jak zajistit, aby se mi neopakovala.

Díky za každou radu :-)

Range(Cells(2, 1), Cells(5, 4)) = Int((16 - 1 + 1) * Rnd + 1)

For i = 2 To 5
  For j = 1 To 4
    Do
   Cells(i, j) = Int((16 - 1 + 1) * Rnd + 1)
   Loop Until (Cells(i, j + 1) <> Cells(i, j)) And (Cells(i, j + 2) <> Cells(i, j)) And (Cells(i, j + 3) <> Cells(i, j)) _
  

   
   Next j
Next i
Nahlásit jako SPAM
IP: 90.183.218.–
Reklama
Reklama
vetva0
Newbie
14. 4. 2012   #2
-
0
-

V podstate po každom generovaní nového čísla ho treba porovnať s predošlými, čo znamená ukladať ich do poľa :

Dim cislo(16) As Byte
Dim n, k As Byte
Dim zhoda As Boolean

    For i = 2 To 5
      For j = 1 To 4
        'počítadlo vygenerovaných čísel
        n = n + 1
        Do
            'inicializátor náhodných čísel
            Randomize
            'generuj a vlož do bunky
            cislo(n) = Int((16 - 1 + 1) * Rnd + 1)
            Cells(i, j) = cislo(n)
            zhoda = False
            'porovnaj s doteraz generovanými číslami
            For k = 1 To n - 1
                If cislo(k) = cislo(n) Then
                    zhoda = True
                    Exit For
                End If
            Next k
            'ak sa niektoré zhodujú generuj znova
        Loop While zhoda
       Next j
    Next i

Nahlásit jako SPAM
IP: 78.99.219.–
Jambi
~ Anonymní uživatel
3 příspěvky
15. 4. 2012   #3
-
0
-

díky moc, pohomohlo mi to !

Nahlásit jako SPAM
IP: 90.183.218.–
Jambi
~ Anonymní uživatel
3 příspěvky
15. 4. 2012   #4
-
0
-

*pomohlo :-)

Nahlásit jako SPAM
IP: 90.183.218.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 30 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý