Welcome, Guest. Please login or register.


Author Topic: Randomize - véletlen szám generálása (Read 1041 times)

Offline nyuzga

  • EP addict
  • *
  • Posts: 1920
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 61.0 Firefox 61.0
    • View Profile
Randomize - véletlen szám generálása
« on: 2018.July.09. 19:02:38 »
Egy játék ötlet. Gondol a gép egy számot 1-5-ig és ezt ki kell találni. Ezzel tesztelhetnénk a prekog képességeinket. :)

Tízből mennyit talál el valaki.
« Last Edit: 2018.July.09. 19:10:51 by nyuzga »

Offline szipucsu

  • EP addict
  • *
  • Posts: 7188
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 61.0 Firefox 61.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re:Randomize - véletlen szám generálása
« Reply #1 on: 2018.July.10. 14:44:18 »
Gondol a gép egy számot 1-5-ig és ezt ki kell találni.

Code: [Select]
100 PROGRAM "GUESS.BAS"
110 RANDOMIZE
115 Z=0
120 FOR A=1 TO 10
130   LET X=RND(5)+1
140   INPUT PROMPT "Guess number "&STR$(A)&":" Y
150   IF X=Y THEN LET Z=Z+1:PRINT "Yes!"
155   IF X<>Y THEN PRINT "No. The number is:" X
157   PRINT "So far:" Z "numbers have been guessed." :PRINT
160 NEXT A
170 PRINT Z "times you guessed the number."
180 END

Szebben is meg lehetne írni, de szerintem elméletileg működik, ha nem szúrtam el semmit.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4675
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re:Randomize - véletlen szám generálása
« Reply #2 on: 2018.July.10. 16:43:51 »
Elvileg elég sok szám után a többit már ki lehet találni programmal. :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 7188
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 67.0.3396.99 Chrome 67.0.3396.99
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re:Randomize - véletlen szám generálása
« Reply #3 on: 2018.July.10. 18:49:11 »
azért valamivel komolyabb programokra gondoltam ebben a topikban
Lehet írni a programhoz zenét, meg lehet csinálni attribútum, sőt gracha képernyősre. Toplistát is lehet csinálni, hangeffekteket ahhoz, amikor eltaláljuk a számot, és amikor nem találjuk el. :D
Amúgy a torpedó játék is majdnem ilyen. El kell találni, hova helyezte a gép a hajókat, csak jóval több a lehetőség. De mondjuk ha 2x2-es pályán kell egy hajót megtalálni, az majdnem olyan, mint ha 1 és 4 között kell kitalálni, mely számra gondolt a gép.
« Last Edit: 2018.July.11. 19:13:30 by szipucsu, Reason: Off rész törölve »

Offline endi

  • EP addict
  • *
  • Posts: 6598
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 66.0.3359.170 Chrome 66.0.3359.170
    • View Profile
    • Honlapom
Re:Randomize - véletlen szám generálása
« Reply #4 on: 2018.July.10. 19:17:39 »
tudjuk ügyebár, hogy a random függvég is csak egy ugyanolyan függvény mint a többi. a nagy kérdés ügye hogy hány biten ábrázolja a számot, és hogy az ember hány bites (ál-)random számot tud megjósolni. :)

ügyebár ha 1 bites a random szám akkor mindig a következő sorozatot kell hogy adja: 1 0 1 0 1 0 1 0. ez az ember el tudja találni :) :) :)

egy matematikus biztos meg tudná mondani, hogy 2, 3, 4 stb biteknél hogy jönnének. valszeg pár bit után már az ember nem tudna jól tippelni.

amúgy most olvastam egy híres kvantumfizikus könyvét, feymann önéletrajzát. abban ír egy marha érdekes dolgot. ügyebár ő jó volt matekból is, és munkája során sokat számoltak fejben, illetve egyszerű mechanikus számológéppel. na most neki akkora gyakorlata lett a különféle sin, cos, tangens meg ilyesmik fejből számolásával, hogy ezek felhasználásával statisztikai alapon jóval bonyolultabb függvényeket is ki tudott fejben számolni néhány tizedesjegyig! tehát azért, mert tudta hogy színusz 0.5 mennyi és nagyon sok ilyet, és sok hasonló függvényét, ezért ezeket az agya összekombinálta, és jóval komplexebb képletekben felhasználta. és persze mindenki csodálkozott hogy csinálja. (persze mindezt ő jobban leírta a könyben).
ja és úgy csinálta ezt hogy x idő alatt valamilyen pontosan kiszámolta, de ha még gondolkodott rajta akkor pontosabban :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7188
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 67.0.3396.99 Chrome 67.0.3396.99
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re:Randomize - véletlen szám generálása
« Reply #5 on: 2018.July.10. 19:29:20 »
a random függvég
Valamelyik EP-s könyv feleslegesnek tartja egy programon belül többször is kiadni a RANDOMIZE parancsot, merthogy semmi értelme, de ha többször is betennénk pl. a FOR cikluson belülre a RANDOMIZÉt, akkor már nehezebb lenne kitalálni, milyen szám jön. De átlagember szerintem sose fogja tudatosan jól megtippelni 5-ből az 5 számót jól egymás után sokszor.
De nem muszáj a randomizén alapulnia az egésznek. Például a rendszeridőből is kiszámíthatja a véletlenszámot. És még a polinom számlálók éppen aktuális értékeit is beszámíthatja, a kettőt még kombinálhatja is. De befolyásolhatják még olyan dolgok is a véletlenszám generálását, hogy pl. a key click be van-e kapcsolva, mennyi a key rate, key delay, mennyi az órajel, mennyi memória/ramdisk/akármi van a gépben.

Offline Povi

  • EP addict
  • *
  • Posts: 1629
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 67.0.3396.99 Chrome 67.0.3396.99
    • View Profile
    • http://povi.fw.hu
Re:Randomize - véletlen szám generálása
« Reply #6 on: 2018.July.11. 13:35:39 »
Például a rendszeridőből is kiszámíthatja a véletlenszámot.
Na de hát a RANDOMIZE pont ezt csinálja, nem? A rendszeridő (vagy a megszakítások száma alapján, de lényegében azt is felfoghatjuk rendszeridődek, mivel 50Hz-es számláló) alapján ad egy kezdőértéket a véletlenszám generátor függvénynek.
*** Speicherplatz zu klein

Offline szipucsu

  • EP addict
  • *
  • Posts: 7188
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 67.0.3396.99 Chrome 67.0.3396.99
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re:Randomize - véletlen szám generálása
« Reply #7 on: 2018.July.11. 14:26:24 »
Na de hát a RANDOMIZE pont ezt csinálja, nem? A rendszeridő (vagy a megszakítások száma alapján, de lényegében azt is felfoghatjuk rendszeridődek, mivel 50Hz-es számláló) alapján ad egy kezdőértéket a véletlenszám generátor függvénynek.
Lehet. Nem tudom, mit csinál a randomize pontosan. De a programozó is kitalálhat többféle műveletet, hogy mit lehet csinálni a rendszeridővel és a megszakításokkal (pl. osztani, szorozni az értékeiket, gyököt vonni belőle, szinuszát venni, stb.) Ha mérné a gép a hőmérsékletet, azt is belevehetné a számításokba. Vagy a winchesterről beolvassa valamelyik fájlt, és valahányadik bájtját is beszámíthatja (floppynál jobb, mert azt gyakrabban cserélik). De ezeket biztos már ezerszer jobban kitalálták nálam. :D
Ha lenne net az EP-n, akkor a fórum utolsó hozzászóló nickjének a kezdőbetűjéből és a hozzászólás idejéből is számolhatna, amit még a rendszeridővel és megszakításokkal is összead/összeszoroz.
« Last Edit: 2018.July.11. 19:06:47 by szipucsu, Reason: Elgépelések javítása »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4675
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Randomize - véletlen szám generálása
« Reply #8 on: 2018.July.11. 19:34:41 »
A RANDOMIZE a 23 bites véletlenszám generátor felső 7 bitjét az R regiszter alapján állítja be, az alsó 8 bitet pedig a RANDOM_IRQ EXOS változóból, aminek az értéke minden megszakításnál eggyel növekszik. A 8..15. bitet nem állítja, ha jól látom. BASIC program indításakor a generátor kezdőértéke 000211h.

Offline endi

  • EP addict
  • *
  • Posts: 6598
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 67.0.3396.87 Chrome 67.0.3396.87
    • View Profile
    • Honlapom
Re: Randomize - véletlen szám generálása
« Reply #9 on: 2018.July.11. 20:03:50 »
A RANDOMIZE a 23 bites véletlenszám generátor felső 7 bitjét az R regiszter alapján állítja be, az alsó 8 bitet pedig a RANDOM_IRQ EXOS változóból, aminek az értéke minden megszakításnál eggyel növekszik. A 8..15. bitet nem állítja, ha jól látom. BASIC program indításakor a generátor kezdőértéke 000211h.

trükkös :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline IstvanV

  • EP addict
  • *
  • Posts: 4675
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Randomize - véletlen szám generálása
« Reply #10 on: 2018.July.11. 21:20:35 »
* guess.bas (0.33 kB. 55x1 - viewed 70 times.)
* rndguess.exe (15.5 kB - downloaded 69 times.)
* rndguess.c (1.16 kB - downloaded 69 times.)

Az rndguess program megpróbálja kitalálni a fenti BASIC programmal generált sorozat folytatását, a már ismert számokat kell a parancssorban megadni. Ezt meglehetősen kezdetleges módon oldottam meg, de az egyszerű generátor miatt ez is elfogadhatóan működik. Ha a seed után zárójelben 1-et ír ki, akkor a többi számot már elvileg biztosan jól jelzi előre. Ezt általában csak 7-8 szám után sikerül elérni.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7188
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 61.0 Firefox 61.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Randomize - véletlen szám generálása
« Reply #11 on: 2018.July.11. 21:41:59 »
Jé, véletlenül jól sikerült a basic programot összedobnom, én nem próbáltam ki egész eddig. :D Már ha nem javítottál bele hiba miatt.

Az rndguess.exe mivel nyílik meg?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4675
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Randomize - véletlen szám generálása
« Reply #12 on: 2018.July.11. 22:22:06 »
Jé, véletlenül jól sikerült a basic programot összedobnom, én nem próbáltam ki egész eddig. :D Már ha nem javítottál bele hiba miatt.

Az INPUT PROMPT-nál volt egy szintaktikai hiba.

Quote
Az rndguess.exe mivel nyílik meg?

PC program.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7188
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 61.0 Firefox 61.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Randomize - véletlen szám generálása
« Reply #13 on: 2018.July.11. 22:37:41 »
Az INPUT PROMPT-nál volt egy szintaktikai hiba.
Gondolkodtam, kell-e oda pontosvessző vagy valami, de furán mutatott. Tehát kettőspont kell. Lehetne a programon szépíteni valamit? Pl. a két IF-et összevonni, vagy hasonló, ami programozásilag elegánsabb?

Quote
PC program.
Hogy kell elindítani? Windows-on dupla kattintással nem indult el, meg dos-os .bat fájlból sem sikerült elindíteni.

Offline nyuzga

  • EP addict
  • *
  • Posts: 1920
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 61.0 Firefox 61.0
    • View Profile
Re: Randomize - véletlen szám generálása
« Reply #14 on: 2018.July.12. 13:08:16 »