ねねっちと一緒にプログラムを勉強するスレ第3話
■ このスレッドは過去ログ倉庫に格納されています
>>310
あそっか
てかそれじゃ何回やってもプレイヤー負けちゃうし
よく考えたらあいこがないのも変だったw
やっぱある程度ランダムは必要なのかな 期限まであと2日なのにどうしよう、全くAIのいい案がないわ 小学生がやりがちな工夫程度ならすぐ作れね?
具体的に書くと答えになっちゃうから書かないけど
統計情報を元に次の手を予測は実装がハードだと思う >>313
いやその統計情報どうやって次の手予測させようかなで詰まってる >>314
俺の考え言うのはおかしいからじっくり考えな
とりあえずできたところまででも見せればいいさ まだ学生なんだから、無理に期限に間に合わせようとしなくてもいいから、
クオリティの高いものを作りなよ もしかして>>300で出た結果に数列使って頻度はじき出せるかな
けど数列の理解がいまいちなぁまだ等差数列しか分かんないし
そもそもそれプログラムに落とすのも難しいし… グー(1)どうしとパー(3)どうしでのあいこが出るのを避けて
NPCの勝率をちょっとだけ上げてみた。
https://ideone.com/L81HdB
ここからプレイヤーの手の癖読んで続けるようにさせたいけどなかなかなぁ… とりあえずデータとってみた
<PLAYER>
2、1、3、2、1、3、3、2、2、3
<NPC>
3、3、2、2、3、2、1、1、2、2
<PLAYER 頻度>
1 → 2,5
2 → 1,4,8,9
3 → 3,6,7,10
<PLAYER 差>
1 → 3
2 → 3、4、1(平均2.7、四捨五入→3)
3 → 3、1、3(平均2.3、四捨五入→2)
若干無理矢理だけどこのデータを元に数列使って
1は公差3、2は公差3、3は公差2で計算すれば
頻度出ると思うんだけどどうだろうか、合ってる? でこれをどうやってプログラム書けばいいんだ…
ちょっと限界、誰かヒント下さい アイデアはあるけど正解ってのは分からないな
というか今悩んでることは正直プログラミングに関係ない
こだわりを捨てろとは言わんけど妥協するのは悪いことじゃないよ おなじようにじゃんけんプログラムでなやんだことがある者ですけど、
じゃんけんは盤面が局面で進行するわけでも定石があるわけでもないので、
はっきりいってランダムが一番かんたんで強いです。
工夫をするなら、たとえば1対1のじゃんけんなら、
「次もぐーだしちゃおうかな」とか「あんたチョキ続いているね」
みたいに、言葉で揺さぶりをかけて相手をどうにかしたほうが
勝率はあがります。 「俺だ、そうだ、いいか心理学と統計を用いて勝てる手を出すんだ。エルプサイコングルウ」って厨二病も嫌いじゃないけどな。
思考法のヒントだが、最初に極端な例考える。例えば相手がずーっとグー出し続けてたとしたらパー出すようにするよね。じゃーどうやってパーを出させるのか?。ずーっとグーって何?どうやったらずーっとグーと判断するの?
次にグーとパーを出してくるやつ考える…
数列に関しては支離滅裂な厨二病になってる、理解してからにしよう。条件付き確率とかベイズとかHMMとかあるんだけど、順調に行ってぬーぶにはあと10年弱ぐらい先の話になると思う。 心理学統計学は一旦置いておいて
まずどの手が出るか、その頻度を求めたい。
確率も必要だけど確率扱える知識がまだない。
頻度なら数列でどうにかなるかと思ったけどならない? 十回のうち、一回当たる宝くじが、あったら、当たる確率だ。わかる? 当たる回数を試行回数で割って一回当たりの平均的な値にしたものが確率だ。 10回で当たるかか全部外れるかの2パターンなので確率は1/2です。 確率は1 (100%)より大きくならない。必ず0%以上100%以下になる。 >>329
はずれを引いた時が次の試行時にくじに戻されるか抜かれるかで確率変わると思うけど。 ※愚か者向けの説明です。良い子は教科書を見ましょう。悪しからず。 結城先生の本読もう
あとゲーム理論の本漁ってみるとか 片山さん色々レスしてくれてるけどそういう意味じゃないよー…
グーチョキパーのうちどれかが出る確率なんて1/3に決まってるけどもそうじゃなくて、
プレイヤーがどの手をどれくらいの頻度で出す癖があるかを調べたい。
それは一人一人違うと思うからそれをプログラムにしたいんだけど、
やっぱ数列じゃなくて統計じゃなきゃ駄目かな?
数列は>>320で出したやり方で駄目? 肝心のじゃんけん部分は出来てるのか?
まずは相手の手はランダムで出すことにして一通り形にしようよ 確率は平均値みたいなもの。だから平均を求めるには、合計と試行確率のパラメーターが必要になる。
確率が変動するなら、ターゲットに近い標本を統計して、前の確率と現在の確率を近付けるように補正する。 ある手を出す確率、ひとつの手を連続で出す確率、ある手から別の手(例:パーの次はグーの確率が高い)を出す確率、
次の手が前の相手の手にどう影響されるかの確立(相手が前に出した手を出す)
戦略の考え方は色々あると思う 相手の手に勝つ期待値の高い手を出すのが良い。
ある手を出す推定確率、
連続で同じ手を出す推定確率、
手の状態遷移に対する推定確率、これらをそれぞれの場合で合計して、期待値が最大の手に勝つ手を選ぶ。
現在の推定確率は、前の推定確率から近傍の統計確率へ、誤差が小さくなる方向に補正したもの。 状態遷移というのは、数学の写像と同じ。場合分けすると計算できる。 ぬーぶは、今のうちに小学校、中学校の復習もしとけよ〜。今問題にしてるとこ、実は小学生でも考えられる。
あとね、数列ってただ数字が繋がったものを指すだけなのでここでこだわる必要なし。35に教えてもらって知らないこと知って興奮状態なのかもしれないけど、もちつけ。それとその性格は予習向いてないかも。 下には下がいる。
世の中には生きる価値がない屑に分類される亜人がいるということを知っただろう。 >>342
まず>>320の仕様理解してる?
確率を求めたい訳じゃないからって何度も言ってるんだけど。
それとね、35歳には何一つ教わってないよ。
あいつ例題出しただけじゃん。 >>336
じゃんけんプログラムの土台は
こないだ作った>>281を使っていじってるよー 勝率云々は置いといて>>281をスッキリ読み易くしよう
ってのが最初の改善になると思うのだけれど >>347
あそっか忘れてた(´・ω・`)
ちょっと時間かかるかもだけど書き直してみる こうゆうあいまいなAIのアルゴリズムって作る理屈が難しいよ、0か1でしか機械は決めないからこの手が多く出てしまったから一番少ない手のこれ出してみましたってどう作るかわからないよ〜 >>345
仕様ってwまず単語を正しく使おう。頻度は専門用語だから間違って使うと意味不明になる。
やりたいことは分かるけど、まー筋が悪すぎ、何度も言うよう新しく覚えたことに引っ張られすぎだって。
問題の本質を考えて、仮定作って解くのだ。このやり方が仮定する問題の本質は何?
このやり方だと、手が決まらないn回目の試行ってのがすぐ出てくるよね?
確か14歳女子のPythonじゃんけんにも手の選択ははいってたかな?参考にチラ見も良いかも。 >>351
一番大事な事忘れてた。でもまー、好きにプログラム組んでみればよいのよ。レッツトライ そうだぞ!!
おちんぽっぽ歴 6年の覇者で
ようやく、オティンコス検定 初級だな。
4種類じゃんけんも 5種類じゃんけんも 7種類じゃんけん も
アルゴリズムは同じだぞwww 500種類じゃんけんもアルゴリズムは同じでしたわwwww まずランダムでいいだろう、出来上がてないじゃんけんの基礎出来てなかったらどれだけいい開いて作っても動かないゲームと同じ
素直にまずはランダムで組み立ててみな >>344
○るぞこのタコ
>>345
あいつ呼ばわりするな生意気だ >>358
このスレにある
ideoneに上げてるからhttpでレス検索すれば出る お前らってねねっちに何か一つでも勝てる物持ってるわけ? ☆☆☆テナント募集中☆☆☆
株式会社●●●●
TEL 03-xxxx-xxxx 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
R30MX このスレって何?
ニューゲームのねねっちはいないの? このスレ立って3年だろ?
ずっと勉強してたならかなり出来るはず ■ このスレッドは過去ログ倉庫に格納されています