Kolme lukua: X-koordinaatti, Y-koordinaatti ja satunnaisesti valittu kaikille koordinaateille yhteinen luku.
Niistä pitäisi saada näennäisesti satunnainen luku.
Mikä olisi sopiva algoritmi?
Niimmitä?
Yksi helppo tapa on laskea yhteen luvut kerrottuina sopivilla kertoimilla ja ottaa summasta jakojäännös.
Jos luvut ovat x, y ja s, kaava voisi olla vaikkapa:
(13*x + 17*y + 23*s) mod 10000
Tämä palauttaa luvun väliltä 0–9999. Kertoimet ovat pieniä alkulukuja, joiden valintaan ei ole erityistä syytä. Merkintä mod tarkoittaa jakojäännöstä (C:ssä ja vastaavissa %).
def arvonta(self, x, y, n, yhteinenluku=2000): x = abs(x) # math.abs() y = abs(y) Gen1 = yhteinenluku + x Gen2 = Gen1 * 2 Siemen = 2000 + y Maksimi = 93 # Maksimin tulee olla niin pieni että # arvonta(2000,2000) sisältää 10 numeroa. for i in range(4): Siemen *= Gen1 Siemen += Gen2 Siemen /= Maksimi Siemen = str(Siemen) # Palautetaan n määrä numeroita. Siemen = Siemen[len(Siemen)-n:len(Siemen)] return int(Siemen)
Hyh hyh.
Aihe on jo aika vanha, joten et voi enää vastata siihen.