Python推測アルゴリズムの問題の詳細な説明

今日書いた最初のアルゴリズムの質問については、もっと簡単な質問を試してください。この質問の要件は次のとおりです。

AとBの2人が数字を推測しています。1人目は1、2、3からランダムに3つの数字を描き、結果は推測です。次に、Bもランダムに3回描画し、結果が答えになります。次に、AとBの結果を比較します。例は次のとおりです。

guess:[1,2,3], answer: [1, 2, 3]

それからそれは3回正しいことがわかります

guess: [1,2,3] answer:[3,2,1]

その結果は正しい推測です

guess: [1,2,3], answer:[3, 3,1]

その結果、推測は0回正しいということになります。

つまり、推測と回答がパラメータとして入力され、正しい推測の数が返されます。

私が思いついた答えは次のとおりです。

**回答1 **:

classSolution:
 def game(self, guess: List[int], answer: List[int])-  int:
 count =0for i inzip(guess, answer):if i[0]== i[1]:
  count +=1return count

アイデアは次のとおりです。zipを使用して2つのリストを結合し、各リストの1つの要素で構成されるタプルを返し、比較を繰り返します。それらが等しい場合、一時変数値は+1であり、統計結果が最終的に返されます。

回答2:

classSolution:
 def game(self, guess: List[int], answer: List[int])-  int:
 count =0for i inrange(3):if guess[i]== answer[i]:
  count+=1return count

アイデア:もう一度考えてみると、スプライシングの必要がないため、これら2つのリストに対応する値を直接取得して比較できるため、私の考えは複雑であることがわかりました。さらに簡単です。比較を直接ループし、一時変数が等しい場合は+1を追加して、最後に一時変数を返します。

回答3:

classSolution:
 def game(self, guess: List[int], answer: List[int])-  int:returnsum(map(lambda x,y: x==y, guess, answer))

アイデア:直接比較できるので、もっと簡単にできますか?マップ関数を考えました。マップ関数の最初のパラメーターは、匿名関数を直接使用して要素を比較し、関数の実行結果を収集します。コントラストが等しい場合、結果はTrueであり、コントラストが等しくない場合、結果はFalseです。

最後に、map関数の直接の結果の合計を返します。

回答4:

classSolution:
 def game(self, guess: List[int], answer: List[int])-  int:if guess == answer:return3
 elif guess[0]== answer[0]:if guess[1]== answer[1]:return2else:return1
 elif guess[1]== answer[1]:if guess[2]== answer[2]:return2else:return1
 elif guess[2]== answer[2]:return1else:return0

アイデア:推測と回答の比較。この状況はこの種の短いリストの比較にのみ適しているため、これは私の最悪の回答です。それより長い場合、コード全体を見ることができません。

コンテンツの拡張:

初心者のためのPythonゲーム:数を推測する

ゲームロジック:コンピューターがランダムに数字を生成し、プレイヤーがその数字を推測します。推測された数字が大きいか小さいかを確認するメッセージが表示されるので、プレイヤーは数字の範囲を狭めることができます。推測が回数内に正しければ、プレーヤーが勝ちます。

関連する知識ポイント:random.randint()、print()、input()(raw_input())

参照実装コード:

#! /usr/bin/env python 
# encoding: utf-8 

# 印刷を使用する("",end=...)標準
from __future__ import print_function 

import os 
import sys 
import time 
import random 

# 入力検出

while1: 
os.system('cls')print("Hello , Welcome to Guess_Number Games...The Number is between 1 - 10...")print("Please input the level you want(1~10): ",end ='') 
level =raw_input("") 
diff =11-int(level)if diff   10 or diff <1:print("Invalid Input...") 
time.sleep(0.3)else:break

# 番号プロセスを推測します

count_num =0
ran = random.randint(1,10)while count_num < diff: 
count_num +=1print(str(count_num)+": "+"Please input the number you guess: ",end ='') 
number =raw_input() 
number =int(number)if number < ran:print("Too Little...")continue
elif number   ran:print("Too Big...")continueelse:print("Congraduation! You Win...")breakif count_num == diff:print("You Lose...")

これまで、Python番号推測アルゴリズムの問題の詳細な説明に関するこの記事を紹介しました。推測番号のより関連性の高いPython実装については、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後、ZaLou.Cnをさらにサポートしていただければ幸いです。 !

Recommended Posts

Python推測アルゴリズムの問題の詳細な説明
pythonバックトラッキングテンプレートの詳細な説明
pythonシーケンスタイプの詳細な説明
PythonIOポート多重化の詳細な説明
pythonコマンドの-uパラメーターの詳細な説明
Python super()メソッドの原理の詳細な説明
python標準ライブラリOSモジュールの詳細な説明
Pythondecimalモジュールの使用法の詳細な説明
Pythonに基づくデータタイプの詳細な説明
Python関数パラメータ分類の原理の詳細な説明
Pythonタイマースレッドプールの原理の詳細な説明
Pythonインターフェース開発の実装手順の詳細な説明
Pythonプロセス制御の一般的なツールの詳細な説明
PythonWebページパーサーの使用例の詳細な説明
pythonに基づく残りの問題の詳細な説明(%)
Pythonプラグインメカニズムの詳細な実装
詳細な並べ替えアルゴリズム(Pythonで実装)
Pythonでの辞書の詳細な使用法
python勾配降下アルゴリズムの実装
Pythonガベージコレクションメカニズムの詳細な分析
属性からプロパティまでのPython詳細な説明
Python仮想環境venvの使用法の詳細な説明
Pythonでのpipの使用に関する詳細な説明|サードパーティライブラリのインストールの概要
Ubuntu20.04インストールPython3仮想環境チュートリアル詳細な説明
Pythonの古典的なアルゴリズム
Python3.9の7つの機能
CentOS6.5でのHadoop環境の構築に関する詳細な説明
Pythonを使用してKSを計算する詳細な例
Ubuntuでの静的DNS構成方法の詳細な説明
Centos7システム仮想マシンブリッジングモードの詳細な説明
同等の保険評価:Centosタイムアウト終了の詳細な説明
vmwareでのCentOS7ネットワーク設定チュートリアルの詳細な説明
詳細なPythonIOプログラミング
詳細なPythonループのネスト
Python構文の基本
Pythonの基本構文
Pythonの基礎知識(1)
Python-モジュールの詳細な説明を要求します
pythonのPrettytableモジュール
09.Python3の共通モジュール
Pythonは推測ゲームを実装しています
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明