Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Venttipelin voittava taktiikka

PetriKeckman [26.06.2023 18:21:00]

#

Haluaisin tutkia kokeellisesti, onko ventti pelissä tilastollisesti voittavaa taktiikkaa. Toisin sanoen, kannattaako korttien nostaminen lopettaa jos kädessä olevien korttien arvojen summa on esimerkiksi 15,16,...,21? Riippuu tietysti siitä, että millä taktiikalla vastustaja pelaa. Siksi tein kaksi-ulotteisen taulukon, johon periaatteessa olisi pitänyt vinoriville, missä molemmat pelaa samalla taktiikalla, tulla keskiarvoksi 50%. Ei tullut.

             15      16      17      18      19      20      21
     15  50.04%  50.10%  52.98%  57.95%  64.66%  74.99%  86.21%
     16  52.11%  52.14%  54.51%  58.59%  65.25%  74.30%  86.33%
     17  53.39%  53.18%  56.02%  60.33%  65.50%  75.12%  86.81%
     18  52.27%  54.44%  56.07%  60.27%  66.58%  75.35%  86.73%
     19  49.43%  52.62%  56.37%  60.85%  66.22%  75.77%  87.05%
     20  43.62%  48.31%  53.24%  60.05%  67.54%  74.87%  87.65%
     21  36.10%  43.01%  49.62%  57.78%  66.03%  75.77%  86.90%

Helle pukkaa päälle, eivätkä aivot jaksa toimia. Tämän tutkimuksen mukaan kannattaisi aina yrittää 21 asti.

program ventti;
TYPE kortit = 	1..52;
	arvo=1..14;
	testit = 15..21;
VAR	peli, pelienlkm	:	LongInt;
	pakka	:	ARRAY [1..52] OF kortit;
	ind		:	kortit;
	pelaaja1, pelaaja2, i, j	:	15..21;
	voitot1, kadenarvo1, kadenarvo2, laskuri	:	Longint;
	tulokset	:	ARRAY [15..21,15..21] OF Integer;
PROCEDURE sekoitapakka;
VAR i,j, apu	: 	kortit;
BEGIN
	FOR i:=1 TO 52 DO {vaihdetaan 52 kertaa korttipareja}
		BEGIN
			apu:= pakka[i];
			j:=Random(52)+1;
			pakka[i]:=pakka[j];
			pakka[j]:=apu;
		END;
END;
FUNCTION kortinarvo1(kortti:kortit):arvo;
VAR apuarvo:arvo;
BEGIN
	apuarvo:=((kortti-1) mod 13)+1;
	IF apuarvo=1 THEN
	BEGIN
		IF (kadenarvo1+14) <= 21 THEN apuarvo:=14;
		IF (kadenarvo1+14) > 21 THEN apuarvo:=1;
	END;
	kortinarvo1:=apuarvo;
END;
FUNCTION kortinarvo2(kortti:kortit):arvo;
VAR apuarvo:arvo;
BEGIN
	apuarvo:=((kortti-1) mod 13)+1;
	IF (apuarvo=1) THEN
	BEGIN
		IF (kadenarvo2+14) <= 21 THEN apuarvo:=14;
		IF (kadenarvo2+14) > 21 THEN apuarvo:=1;
	END;
	kortinarvo2:=apuarvo;
END;
{*****************************************************}
PROCEDURE nostakortti1;
BEGIN
	kadenarvo1:=kadenarvo1 + kortinarvo1(pakka[ind]);
	ind:=ind + 1;
END;
PROCEDURE nostakortti2;
BEGIN
	kadenarvo2:=kadenarvo2 + kortinarvo2(pakka[ind]);
	ind:=ind + 1;
END;
{*****************************************************}
PROCEDURE pelaa1(testiarvo:testit);
BEGIN
	REPEAT
		nostakortti1;
	UNTIL (kadenarvo1 >= testiarvo) {testiarvo on 15:sta 21:een}
END;
PROCEDURE pelaa2(testiarvo: testit);
BEGIN
	REPEAT
		nostakortti2;
	UNTIL kadenarvo2 >= testiarvo {testiarvo on 15:sta 21:een}
END;
PROCEDURE alustukset;
BEGIN
	FOR ind:=1 TO 52 DO pakka[ind]:=ind; {alustetaan pakka}
	Randomize;
	pelienlkm:=10000;
END;
BEGIN
	laskuri:=0;
	alustukset;
	FOR pelaaja1:=15 TO 21 DO  {tutkitaan mihin kannattaa jättää}
		FOR pelaaja2:=15 TO 21 DO
			BEGIN
				BEGIN
					voitot1:=0;
					FOR peli:=1 TO pelienlkm DO {simuloidaan pelienlkm ventti peliä}
						BEGIN
							kadenarvo1:=0;
							kadenarvo2:=0;
							sekoitapakka;
							ind:=1;
							pelaa1(pelaaja1);
							pelaa2(pelaaja2);
							//writeln(kadenarvo1:5,kadenarvo2:5);
							IF ((kadenarvo1 > kadenarvo2) AND (kadenarvo1 <= 21)) OR (kadenarvo2 > 21) OR (kadenarvo1=21) THEN voitot1:=voitot1+1;
							laskuri:=laskuri+1;
						END;
						tulokset[pelaaja1,pelaaja2]:=voitot1;
					END;
			END;
	WRITE('':7);
	FOR i:=15 TO 21 DO WRITE(i:8);
	WRITELN();
	FOR i:=15 TO 21 DO
		BEGIN
			WRITE (i:7);
			FOR j:=15 TO 21 DO
				BEGIN
					WRITE(100*tulokset[i,j]/pelienlkm:7:2,'%');
				END;
			WRITELN();
		END;
END.

Grez [26.06.2023 19:06:26]

#

PetriKeckman kirjoitti:

Tämän tutkimuksen mukaan kannattaisi aina yrittää 21 asti.

Tulkitsetkohan nyt noita lukuja väärin? Ettei olisi niin että 21 asti pelaamalla pärjäisi huonoiten.

PetriKeckman [26.06.2023 19:11:24]

#

Grez kirjoitti:

PetriKeckman kirjoitti:

Tämän tutkimuksen mukaan kannattaisi aina yrittää 21 asti.

Tulkitsetkohan nyt noita lukuja väärin? Ettei olisi niin että 21 asti pelaamalla pärjäisi huonoiten.

En tässä aivojeni tilassa sano juuta enkä jaata. Paitsi että "Voi olla".

Yritin kyllä mielestäni laskea "pelaajan1" voittojen lukumäärää....

Grez [26.06.2023 19:14:36]

#

Itse tein vastaavan ja tuossa kyllä alkaa tuon 50/50 tilanne jos molemmat pelaajat valitsevat saman pienen numeron, mutta mitä isompaan numeroon asti pelaajat jatkavat, sitä enemmän alkaa näkyä aloittavan pelaajan suurempi todennäköisyys mennä yli ja siten hävitä. Oletan että peli päättyy heti kun jompi kumpi pelaaja menee yli.

Eli
- riviotsikko on summa jolla aloittava pelaaja lopettaa
- sarakeotsikko on summa jolla toinen pelaaja lopettaa
- prosentti aloittavan pelaajan voittojen osuus. Tasapelejä ei huomioida

Pelasin 100 000 peliä kullakin parilla ja arvoin vain satunnaisia kortteja, eli simuloin tilannetta jossa pelataan rajattomalla määrällä pakkoja.

Tässä siis saa ässästä joko 1 tai 14 ja muista 2-13. Ja tuo on nyt sitten tehty logiikalla että ässästä otetaan aina 14, paitsi jos menisi yli niin 1.

            10     11     12     13     14     15     16     17     18     19     20     21
     10  50,0%  41,3%  35,3%  32,0%  33,0%  35,3%  39,2%  45,3%  52,6%  62,1%  73,1%  85,8%
     11  58,7%  50,1%  42,0%  37,7%  36,7%  38,0%  41,4%  46,1%  52,7%  61,3%  72,1%  84,2%
     12  64,7%  57,8%  49,8%  43,4%  40,5%  40,7%  42,7%  46,8%  52,5%  60,3%  70,0%  81,3%
     13  67,9%  62,4%  56,0%  49,6%  44,7%  43,8%  44,7%  46,9%  51,8%  58,0%  66,8%  77,2%
     14  66,9%  62,6%  58,5%  54,1%  48,8%  46,7%  46,0%  47,2%  50,1%  55,1%  62,5%  71,8%
     15  64,6%  61,6%  58,3%  55,0%  51,1%  48,5%  46,8%  47,0%  49,3%  53,4%  59,7%  68,6%
     16  60,6%  58,1%  56,1%  53,7%  51,7%  50,1%  47,9%  47,1%  48,2%  51,4%  56,5%  64,3%
     17  54,8%  53,4%  51,9%  51,1%  50,0%  48,8%  47,6%  46,6%  46,4%  48,6%  53,2%  59,4%
     18  47,1%  46,8%  46,1%  46,1%  46,5%  46,0%  45,9%  45,1%  45,1%  45,8%  49,1%  54,4%
     19  37,9%  38,1%  38,3%  39,3%  40,7%  40,9%  41,5%  41,7%  42,4%  42,9%  44,5%  48,7%
     20  26,6%  27,5%  28,7%  30,6%  33,2%  33,7%  34,9%  36,2%  37,5%  38,4%  40,2%  42,8%
     21  13,8%  15,3%  17,1%  19,9%  23,4%  24,7%  26,9%  28,4%  30,6%  32,7%  34,5%  36,8%

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta