Kezdőoldal » Számítástechnika » Programozás » Egy 0-255 tartományt hogyan...

Egy 0-255 tartományt hogyan tudok feltölteni véletlenszerűnek kinéző, de nem véletlen IGEN/NEM értékekkel?

Figyelt kérdés

Ehhez van egy darab paraméterem, szintén 0-255.

Tehát, ha például ez a paraméter nulla, akkor az első érték legyen pl. NEM, a következő IGEN, aztán megint IGEN, és így tovább, látszólag véletlenszerűen sorban a 256 érték. Ha a paraméter egy másik szám, akkor más, de szintén IGEN/NEM értékek, amelyek nem az előző eltolása, hanem másféle minta.

Úgy szeretném, ha ezek az értékek külön-külön számíthatóak lennének, tehát ne kelljen sorrendben számolni őket, és lehetőleg ne legyen nagy számítási igénye.

Megoldható ez így?


2022. ápr. 27. 01:45
1 2
 1/19 anonim ***** válasza:
100%
Szerintem kicsit bővebben ismertesd a feladat leírását.
2022. ápr. 27. 03:56
Hasznos számodra ez a válasz?
 2/19 anonim ***** válasza:
84%

A peszudorandom generátorok, amik az összes nyelvhez elérhetőek, pont ezt csinálják.

Nyitott kapukat döngetsz.

2022. ápr. 27. 06:08
Hasznos számodra ez a válasz?
 3/19 Pelenkásfiú ***** válasza:

Ha ez egy feladat, hogy mindenképp írj sajátot (értelme nincs, de gyakorlásnak jó), akkor én ezt csinálnám:

A paraméternek (legyen most 10) vesszük az MD5 hashét:

d3d9446802a44259755d38e6d163e820

Ezzel kaptunk 128 bitet (a hexadecimális számot binárisként értelmezve ez 128 db 1-es vagy 0).

A paraméterből képezz egy másik számot/stringet/akármit. A példa kedvéért most utána írom, hogy "random".

"10random" hashelve:

860b931a023f99eefb28976d0d31cf4a

Így már összesen 256 bited van, pont amennyit szeretnél.

Ahol nulla van, az lesz a NEM, ahol 1-es, az lesz az IGEN.

2022. ápr. 27. 09:39
Hasznos számodra ez a válasz?
 4/19 anonim ***** válasza:
Szerintem ha a paraméter 0 vagy 1, akkor értelemszerűen 2 kimeneted lehet. Szóval érdemesebb a paramétert tetszőlegesre állítani, és akkor jöhet a hashelés ahogy azt pelenkasfiú írta.
2022. ápr. 27. 11:30
Hasznos számodra ez a válasz?
 5/19 anonim ***** válasza:
Értelmetlen a kérdés, így megoldani sem lehet.
2022. ápr. 27. 11:39
Hasznos számodra ez a válasz?
 6/19 Pelenkásfiú ***** válasza:
64%
#4 Szerintem azt írta, hogy 256 féle lehet a bemenő paraméter (0-255)
2022. ápr. 27. 12:11
Hasznos számodra ez a válasz?
 7/19 anonim ***** válasza:
64%

A bemeneteddel(szám 0-255 közt) seedeld meg a random szám generátorodat.


Ezután generálj 256 darab booleant véletlenszerüen.


így egy konkrét paraméterre mindíg ugyanazt a véletlen sorozatot fogja elöállítani

2022. ápr. 27. 15:35
Hasznos számodra ez a válasz?
 8/19 anonim ***** válasza:
64%

itt egy python példa:


import random


parameter = 25 # lehet akármi más

random.seed(parameter)

print([random.choice(["IGEN", "NEM"]) for _ in range(256)])

2022. ápr. 27. 15:40
Hasznos számodra ez a válasz?
 9/19 A kérdező kommentje:

Közben én is rájöttem, hogy a véletlenszám generátor lesz a megoldás.

Sajnos nem lehet beépítettet használni, az másra is kell.

Valószínűleg egy egyszerű szorzós/összeadós generátor is jó itt, csak a túlcsordulásra kell vigyázni.

2022. ápr. 27. 21:01
 10/19 anonim ***** válasza:

"Közben én is rájöttem, hogy a véletlenszám generátor lesz a megoldás."

Mondjuk ez annyira nem meglepő.


"Sajnos nem lehet beépítettet használni, az másra is kell."

Ugye Te is érzed, hogy ennek az égvilágon semmi értelme.


"Valószínűleg egy egyszerű szorzós/összeadós generátor is jó itt, csak a túlcsordulásra kell vigyázni"

Nem lesz jó, nagyon nem fog még csak véletlennek sem tűnő értékeket sem generálni, ha Te találsz ki egy algoritmust.

2022. ápr. 27. 23:02
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!