[Épisode 1] Un débutant a essayé Numeron AI avec python

Dernière fois (auto-présentation, vous n'avez donc pas besoin de le lire) 1er 2ème 3e Histoire finale

À propos de cet article

Expliquons d'abord le déroulement du jeu contre Numeron AI. Comme je l'ai expliqué la dernière fois, je suis un débutant avec 1 mois d'expérience en programmation plutôt qu'en python ... donc il peut y avoir des lacunes. Nous espérons que vous pourrez le voir avec des yeux chaleureux. De plus, puisque je suis moi-même un débutant, j'aimerais l'écrire d'une manière facile à comprendre pour les autres débutants, alors évitez les explications redondantes.

Flux de programme

1: le joueur et le com définissent chacun leur propre numéro à 3 chiffres

À ce moment, le joueur entre les 3 chiffres du joueur et les 3 chiffres de com sont déterminés au hasard.

2: Le joueur appelle le numéro (le premier joueur est toujours le joueur)

L'appel est effectué par entrée. De plus, le traitement suivant est requis une fois la saisie terminée.

3: Affichez xEAT, yBITE et le résultat correspondant

3.1: Si 3EAT, la première victoire

En d'autres termes, le processus s'arrête là.

3.2: Déplacer le virage pour appeler autrement à com

Cela signifie que le tour change à chaque appel. (Ci-après, xEAT et yBITE sont appelés x-y)

4: com appelle un numéro à 3 chiffres

Le numéro à appeler à ce moment doit être le numéro qui peut réduire les candidats même dans le pire résultat (les détails seront décrits plus loin).

5: Afficher x-y et le résultat correspondant

5.1: Si 3-0, com gagne

5.2: Sinon, déplacez d'abord le tour

Puisqu'il s'agit du même processus, l'explication est omise

6: Répétez les étapes (2) à (5) jusqu'à ce que 3-0 apparaisse.

Ce sera le flux.

Ensuite, j'expliquerai "le nombre qui permet de réduire le plus de candidats même dans le pire résultat"

Description AI de com

Que signifie «le nombre qui peut réduire le plus de candidats même dans le pire résultat»?

Explication avec un exemple concret

Lorsque le premier appel est 012 et 0-1, il reste 252 candidats.

Si vous appelez le 345

Si vous appelez le 345 lors du deuxième appel Il y a des résultats [2-0], [1-0], [0-2], [0-1], [1-1], [0-0], respectivement. 6 façons pour 2-0 48 façons pour 1-0 18 façons pour 0-2 96 façons pour 0-1 1-1 est de 12 façons 72 façons pour 0-0 Vous pouvez réduire le nombre de candidats. En d'autres termes, si vous appelez [345] lors du deuxième appel, vous pouvez réduire à 96 voies, même dans le pire résultat. Si nous appelons ce genre de chose le pire nombre de candidats Le pire candidat pour 345 est 96.

Si vous appelez le 314

Si vous appelez le 314 lors du deuxième appel 2-0, 2 voies 30 façons pour 1-0 2-0, 2 voies 1-2 c'est 2 façons 12 façons pour 1-1 30 façons pour 1-0 80 voies pour 0-0 Et le pire nombre de candidats est 80.

Donc, si vous appelez le 345 et le 314 314 a un plus petit nombre de pires candidats ⇒ Excellent appel Nous concluons que l'ordinateur appelle préférentiellement le 314. Aussi, si le pire nombre de candidats est le même, nous appellerons au hasard.

Gérer les exceptions

Bien sûr, le pire nombre de candidats n'est pas optimal car nous ne considérons que la situation d'un serviteur. Cependant, il y a des moments où nous faisons quelque chose qui n'est pas optimal sans penser à des choses aussi difficiles. C'est alors qu'il ne reste plus que "123" et "132" candidats Je pense que la plupart des humains appelleront l'un ou l'autre. Heureusement si vous frappez. Même si vous le manquez, vous pouvez obtenir la prochaine bonne réponse. Cependant, avec l'IA ci-dessus, vous risquez d'appeler le 453. Parce que 123, 132 et 453 ont le pire nombre de candidats de 1. Par conséquent, nous inclurons le traitement suivant

Priorité des numéros à appeler

1: Le nombre avec le plus petit nombre de pires candidats 2: S'il y a plusieurs choses de ce genre, appelez de préférence celle qui peut être 3-0 3: Toujours aléatoire s'il y en a plusieurs

Je vais sélectionner les nombres comme celui-ci. Ce qui précède est le déroulement de ce programme. Si vous l'écrivez dans une phrase, vous pouvez voir les os du programme et il sera plus facile d'ajouter de la viande.

finalement

J'écrirai le programme concrètement dès la prochaine fois. J'aimerais en savoir beaucoup plus, alors j'apprécierais vos conseils et vos encouragements.

Recommended Posts

[Épisode 2] Les débutants ont essayé Numeron AI avec python
[Épisode 3] Les débutants ont essayé Numeron AI avec python
[Épisode 0] Un débutant a essayé Numeron AI avec python
[Épisode 1] Un débutant a essayé Numeron AI avec python
[Dernière histoire] Un débutant a essayé Numeron AI avec python
3. 3. Programmation IA avec Python
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
Créez Puyopuyo AI avec Python
Mayungo's Python Learning Episode 1: J'ai essayé d'imprimer avec impression
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
Mayungo's Python Learning Episode 3: J'ai essayé d'imprimer des nombres
J'ai essayé d'exécuter prolog avec python 3.8.2.
les débutants en python ont essayé de le découvrir
J'ai essayé la communication SMTP avec Python
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
Mayungo's Python Learning Episode 7: J'ai essayé d'imprimer avec if, elif, else
INSÉRER dans MySQL avec Python [Pour les débutants]
J'ai essayé le rendu non réaliste avec Python + opencv
J'ai essayé un langage fonctionnel avec Python
J'ai essayé la récurrence avec Python ② (séquence de nombres Fibonatch)
[Python] Lire des images avec OpenCV (pour les débutants)
Mayungo's Python Learning Episode 8: J'ai essayé l'entrée
Création WebApi avec Python (création CRUD) Pour les débutants
Comment les débutants en Python commencent avec Progete
Construction d'environnement AI / Machine Learning avec Python
[Pour les débutants] Essayez le web scraping avec Python
# J'ai essayé quelque chose comme Vlookup avec Python # 2
Mayungo's Python Learning Episode 2: J'ai essayé de mettre des caractères avec des variables
J'ai refactoré "J'ai essayé de faire d'Othello AI lorsque les débutants en programmation ont étudié python"
J'ai essayé de prédire l'année prochaine avec l'IA
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé des centaines de millions de SQLite avec python
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Raisonnement causal et recherche causale par Python (pour les débutants)
J'ai essayé de "différencier" l'image avec Python + OpenCV
Grattage avec Python
Python avec Go
Mayungo's Python Learning Episode 5: J'ai essayé de faire quatre règles avec des nombres
Un débutant en Python a essayé de coder une boisson énergisante
J'ai essayé L-Chika avec Razpai 4 (édition Python)
Intégrer avec Python
J'ai essayé la différenciation jacobienne et partielle avec python
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé d'utiliser mecab avec python2.7, ruby2.3, php7
AES256 avec python
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
J'ai essayé la synthèse de fonctions et le curry avec python
Testé avec Python
J'ai essayé de sortir LLVM IR avec Python
Un débutant en apprentissage automatique a essayé de créer un modèle de prédiction de courses de chevaux avec python
python commence par ()
avec syntaxe (Python)
J'ai essayé d'exécuter faiss avec python, Go, Rust
J'ai essayé d'automatiser la fabrication des sushis avec python