[PYTHON] Examinons le mécanisme de la chinchirorine de Kaiji

Pendant la période de maîtrise de soi

J'étais inquiet car je pouvais lire divers travaux passés avec l'application manga gratuite.

C'est le jeu "Chinchirorin" qui est apparu dans le dessin animé "Kaiji".

Kaiji

Une série de dessins animés de Nobuyuki Hon, ainsi que des animations et des films d'action en direct basés sur eux.

À l'origine un mauvais être humain, il fait preuve d'un courage et d'un talent extraordinaires lorsqu'il est placé dans des conditions extrêmes de crise imminente. Le personnage principal, Kaiji Ito, est un manga ici.

Actuellement, les 5 + 1 volumes suivants ont été publiés. En outre, il existe des œuvres dérivées telles que "Intermediate Manager Tonegawa" et "One-day Outing Record Hanchou".

Gaming Apocalypse Kaiji (1996-1999 Weekly Young Magazine, 13 volumes) Gaming Haunting Record Kaiji (2000-2004 Weekly Young Magazine, 13 volumes) Gaming Fallen Record Kaiji (Magazine hebdomadaire des jeunes 2004-2008, 13 volumes) Gaming Fallen Record Kaiji Kazuya éd. (2009-2012 Weekly Young Magazine, 10 volumes au total) Gaming Fallen Record Kaiji One Poker Edition (2012-2017 Weekly Young Magazine, 16 volumes au total) Gaming Fallen Record Kaiji 2.4 Billion Escape Edition (2017-sérialisé, 6 volumes déjà publiés)

C'est un travail qui traite du thème de base du «jeu».

Chinchirorin

Dans le manga, ce sont les jeux de hasard qui apparaissent dans le chapitre 3 «The Swamp of Desire».

C'est le jeu de hasard que le chef d'équipe Otsuki nous a présenté comme récréation dans l'installation souterraine de travaux forcés.

règle

Lancez 3 dés en même temps jusqu'à ce que les rôles soient terminés (jusqu'à 3 fois)

Mettez les dés dans un bol, retournez-le, posez-le sur le sol et prenez le bol pour déterminer le résultat.

Les rôles sont les suivants par ordre de force.

Nom de rôle conditions
Pinzolo 1 ・ 1 ・ 1
Yeux de Zoro 2.2.2,3.3.3,4 ・ 4 ・ 4,5 ・ 5 ・ 5,6/6/6
Shigoro 4 ・ 5 ・ 6
Commande la plus importante Deux sont les mêmes, le nombre d'un restant
Shonben S'il n'y avait pas de rôle,Quand les dés sortent du bol
Hifumi 1, 2, 3

Il y a des règles de remboursement dans le manga, mais cette fois je les omettrai. Nous considérerons simplement la probabilité qu'un rôle sortira.

Tout d'abord, considérons une fonction qui détermine le rôle. Le rôle est de créer une fonction qui renvoie le Pinzolo le plus fort dans l'ordre de 1 puis le plus fort. De plus, on ne pense pas à la réaffectation ici, et si elles ne sont pas alignées, on la traitera comme s'il n'y avait pas de rôle. De plus, je pense que les yeux de Zoro ont la même force quel que soit celui qui sort.

def tintiro_hand(h):
    #Pinzolo
    if all([h[0]==1,h[1]==1,h[2]==1]):
        return 1
    #Yeux de Zoro
    if h[0]==h[1] and h[1]==h[2]:
        return 2
    #Shigoro
    if [4,5,6]==list(sorted(h)):
        return 3
        #Hifumi
    if [1,2,3]==list(sorted(h)):
        return 11
    #Die et Shonben
    calc = {}
    for n in h:
        if n in calc:
            calc[n]+= 1
        else:
            calc[n]=1
    if 2 in calc.values():
        return 3 + 7-sorted(calc.items(),key=lambda x:x[1])[0][0]
    else:
        return 10

def judge(h1,h_2):
    if h1==h_2:
        return 'DRAW'
    if h1<h_2:
        return 'WIN'
    else:
        return 'LOSE'

Nous créerons également une fonction pour juger du résultat.

Gagner ou perdre en combattant avec les mêmes dés

import itertools
from fractions import Fraction

hands1 = list(itertools.product([1,2,3,4,5,6],repeat=3))
hands2 = list(itertools.product([1,2,3,4,5,6],repeat=3))
wins = {}
for hand1 in hands1:
    for hand2 in hands2:
        w = judge(tintiro_hand(hand1),tintiro_hand(hand2))
        if w in wins:
            wins[w] +=1
        else:
            wins[w] = 1
total = sum(wins.values())
draw,win,lose =wins['DRAW'],wins['WIN'],wins['LOSE']
print('DRAW\t' , Fraction(draw,total) , ' \t{:%}'.format(draw/total))
print('WIN \t'    , Fraction(win ,total)  , '\t{:%}'.format(win/total))
print('LOSE\t'   , Fraction(lose,total)  , '\t{:%}'.format(lose/total))
DRAW 1639/5832 28.10%
WIN 4193/11664 35.95%
LOSE 4193/11664 35.95%

Les chances de gagner ou de perdre sont les mêmes. Eh bien, c'est naturel.

Gagnez ou perdez en affrontant Shigoro Samurai

** Shigoro 賽 **

C'est un dé utilisé par le chef d'équipe Otsuki avec seulement 4,5,6 yeux.

image.png

Le côté arrière de 4 est 4 et le côté arrière a le même numéro, donc vu dans une direction Il y a une fonctionnalité que vous ne remarquez pas.

Comment le taux de victoire changera-t-il avec cela? J'essaierai de rivaliser avec des dés ordinaires.

import itertools
from fractions import Fraction

hands1 = list(itertools.product([1,2,3,4,5,6],repeat=3))
hands2 = list(itertools.product([4,5,6,4,5,6],repeat=3))
wins = {}
for hand1 in hands1:
    for hand2 in hands2:
        w = judge(tintiro_hand(hand1),tintiro_hand(hand2))
        if w in wins:
            wins[w] +=1
        else:
            wins[w] = 1
total = sum(wins.values())
draw,win,lose =wins['DRAW'],wins['WIN'],wins['LOSE']
print('DRAW\t' , Fraction(draw,total) , '\t{:%}'.format(draw/total))
print('WIN \t' , Fraction(win ,total) , '\t{:%}'.format(win/total))
print('LOSE\t' , Fraction(lose,total) , '  \t{:%}'.format(lose/total))
DRAW 107/1944 5.50%
WIN 175/1944 9.00%
LOSE 277/324 85.49%

Avec la même chance de gagner ou de perdre, vous perdrez 50% de plus. C'est un joli dé.

Quelle est la probabilité d'un rôle?

La probabilité d'obtenir un rôle est que la combinaison de dés est «216 façons» (6 $ ^ 3 $), c'est donc le dénominateur.

En regardant la probabilité du rôle dans chaque dé

import itertools
import matplotlib.pyplot as plt
%matplotlib inline

hands1 = list(itertools.product([1,2,3,4,5,6],repeat=3))
hands = {}
for hand1 in hands1:
    h = tintiro_hand(hand1)
    if h in hands:
        hands[h] +=1
    else:
        hands[h] = 1

plt.figure(figsize=(12,6))
x = [k for k,v in sorted(hands.items())]
y = [v for k,v in sorted(hands.items())]
for x1,y1 in zip(x,y):
    plt.text(x1, y1+1 , y1 , size = 10, color = "green")
    plt.text(x1, y1+10 , '{:.01%}'.format(y1/216), size = 10, color = "black")
label = ['111','Yeux de Zoro','Shigoro','6','5','4','3','2','1','Shonben','123']
plt.bar(x,y,tick_label=label)
plt.grid()
plt.show()

image.png

S'il est confirmé sans envisager de relancer trois fois, le rôle qui apparaît le plus est l'absence de rôle (Shonben). Donc je pense que c'est une règle de relancer trois fois.

Il n'y a qu'un seul «pinzolo». Il existe 6 types de «123» les plus faibles.

Et si c'était Shigoro Sagami?

import itertools
import matplotlib.pyplot as plt
%matplotlib inline

hands = list(itertools.product([4,5,6,4,5,6],repeat=3))
hands2 = {i:0 for i in range(1,12)}
for hand in hands:
    h2 = tintiro_hand(hand)
    if h2 in hands2:
        hands2[h2] +=1
    else:
        hands2[h2] = 1

plt.figure(figsize=(12,6))
x = [k for k,v in sorted(hands2.items())]
y = [v for k,v in sorted(hands2.items())]
for x1,y1 in zip(x,y):
    plt.text(x1, y1+1 , y1 , size = 10, color = "green")
    plt.text(x1, y1+10 , '{:.01%}'.format(y1/216), size = 10, color = "black")
label = ['111','Yeux de Zoro','Shigoro','6','5','4','3','2','1','Shonben','123']
plt.bar(x,y,tick_label=label)
plt.grid()
plt.show()

image.png

C'est écrasant.

C'est évident lorsque vous les comparez. スクリーンショット 2020-05-23 17.10.35.png

Si c'est Shigoro Sai, il n'y aura pas d'inutilité et au moins «4» sortira. La probabilité de «Zorome» est inférieure à 5 fois et la probabilité de «Shigoro» est de 8 fois.

Dans le cas du manga, le paiement de «111» est augmenté et le paiement de «456» est légèrement affaibli, et il est camouflé. Je prévois diverses choses et les règles sont intéressantes.

Comment trouver des calmars

C'est le compte rendu du résultat que mon collègue Miyoshi a gardé que j'ai découvert le mécanisme de ce dé Ikasama.

J'ai remarqué qu'il y a beaucoup de 456 seulement quand le chef d'équipe est le meilleur jeu ici. Vous vous méfierez de l'existence des dés Ikasama.

Avec un dé normal, la probabilité de «456» est inférieure à 3%, vous n'obtiendrez donc que 2 à 3 fois en 100 fois. Plus vous continuez, plus la probabilité convergera et vous devriez vous rapprocher de la probabilité d'origine. Si vous continuez à collecter des données des milliers de fois, vous remarquerez peut-être que la probabilité est étrange.

Il est important d'acquérir des données quotidiennes et de noter la probabilité.

Résumé

Après tout, vous pouvez voir que les statistiques et les probabilités sont encore une fois importantes pour gagner au jeu.

Si une institution publique commence à détenir de la chinchirorine en raison d'une IR Ikasama qui est allé comme ça peut être populaire, et j'aimerais attendre ce moment avec impatience.

Informations sur l'auteur

HP d'Otsu py: http://www.otupy.net/

Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter: https://twitter.com/otupython

Recommended Posts

Examinons le mécanisme de la chinchirorine de Kaiji
J'ai étudié le mécanisme de connexion flask!
Décidons le gagnant du bingo
Étudiez l'effet des valeurs aberrantes sur la corrélation
Utilisons l'API de la fenêtre générale des statistiques gouvernementales (e-Stat)
Supprimons maintenant l'ambiguïté du trait d'union (-) de la commande su! !!
[Statistiques] Comprendre le mécanisme des graphiques Q-Q avec animation.
Décomposons les bases du code Python de TensorFlow
Utilisons la version Python du module API Confluence.
Utilisons les données ouvertes de "Mamebus" en Python
Testons l'hypothèse d'effondrement médical du nouveau virus corona
Analysons les émotions de Tweet en utilisant Chainer (2ème)
Analysons les émotions de Tweet en utilisant Chainer (1er)
[Python] Changeons l'URL du site administrateur de Django
Le début de cif2cell
Le sens de soi
le zen de Python
L'histoire de sys.path.append ()
La vengeance des types: la vengeance des types
Traversons le mur du système de coordonnées gauche et du système de coordonnées droitier.
Décidons la conférence de PyCon JP 2016 par optimisation de combinaison
Visualisons le volume des transactions des actions TSE - Exemple Jpxlab
Utilisons les données ferroviaires des informations numériques foncières nationales
Faisons l'analyse des données de naufrage du Titanic comme ça
Exécutons la commande à temps avec le bot discord
Touchons l'API de Netatmo Weather Station avec Python. #Python #Netatmo
Prédisons le timing de Barus et apprécions le film lentement
L'expérience de la CIA pour déchiffrer le mécanisme de l'écoute téléphonique publique
Visualisons le nombre de personnes infectées par le virus corona avec matplotlib
Utilisons rapidement l'expression distribuée des mots avec fastText!
Jouez avec le mécanisme de mot de passe de GitHub Webhook et Python