数学@ふたば
[ホーム]

[掲示板に戻る]
レス送信モード
おなまえ
E-mail
題  名
コメント
添付File []
削除キー(記事の削除用。英数字で8文字以内)

画像ファイル名:1621264508257.png-(2394 B)
2394 B無題Name名無し21/05/18(火)00:15:08No.115212+ 11月29日頃消えます
プログラミング初心者の本を読んでるとジャンケンをするプログラムが載ってるんですが
グー=0
チョキ=1
パー=2
としてコンピュータとじゃんけんをして
引き分け=0
勝ち=1
負け=2
という答えを導き出すにはどうすればいいでしょうか。
本に式とプログラムは載ってるんですが説明が無いので理解できないのです。
当方の数学の知能は小学生レベルです。
削除された記事が4件あります.見る
1無題Name名無し 21/05/18(火)00:25:13No.115213+
書き込みをした人によって削除されました
2無題Name名無し 21/05/18(火)00:25:34No.115214+
書き込みをした人によって削除されました
3無題Name名無し 21/05/18(火)00:26:53No.115215+
    1621265213784.jpg-(73328 B)
73328 B
ネットに同じのがありました。
赤で囲んだ部分です。(pythonで%は「割った余り」という意味です)
なぜ自分の手から相手の手を引いて3を足して、3で割った余りが、勝敗の値になるのでしょうか。
どうやってその式を導き出したのかがわからないです。
4無題Name名無し 21/05/18(火)05:29:23No.115216そうだねx1
    1621283363692.png-(8273 B)
8273 B
以下全部mod 3で考えるとする.(要は1+2=0, 2+2=1などなど…)
自分の手とCPUの手,そのときの勝敗を表にまとめると図みたいな感じになる
自分の手=i, CPUの手=jとしてやると,
勝敗(i,j)
| i == 0 -> j
| i == 1 -> j + 2
| i == 2 -> j + 1
となってる事がわかる. mod 3に注意すると,
勝敗(i,j)
| i == 0 -> j + (3 - i)
| i == 1 -> j + (3 - i)
| i == 2 -> j + (3 - i)
となる. 全部同じ形に変形できたから,
勝敗(i,j) = j + (3 - i)
自分の手と勝敗の和が常に0になるのを表から読み取れたら早いけど、気づかなかったらこんな感じ地道にやるとわかる
5無題Name名無し 21/05/18(火)05:35:43No.115217+
f(x)
| x == a -> a'
| x == b -> b'
...

x == a のとき, f(x) の値は a',
x == b のとき, f(x) の値は b',
...
と読んで
6無題Name名無し 21/05/18(火)05:47:14No.115218+
ちなみに
>ネットに同じのがありました。
と言ってるけど
>1621265213784.jpg

引き分け=0
勝ち=2
負け=1
になってるから注意
7無題Name名無し 21/05/18(火)13:19:30No.115219+
誤)自分の手と勝敗の和が常に0になる
正)自分の手-相手の手と勝敗の和が常に0になる
8無題Name名無し 21/05/18(火)14:27:20No.115220そうだねx1
スレ主ですが、その図まではわかるんですが、
当方小学生並みの算数しか知らないので
MOD3とか==とか->の意味がさっぱり分からないです
9無題Name名無し 21/05/18(火)17:42:48No.115221+
mod 3 で考えるっていうのは数字を3で割った余りが同じなら同じとみなしますよということ
つまり,
...=-6=-3=0=3=6= 9=12=...,
...=-5=-2=1=4=7=10=13=...,
...=-4=-1=2=5=8=11=14=...
こうすることでこの世の数(整数)は0,1,2のどれかになる
例えば100だったら,100÷3=33あまり1だから1と同じ
>1621283363692.png
には0,1,2しか出てきてないからmod 3で考えると都合が良さそうだなと言う発想になるわけ

==は大抵のプログラミング言語で等しいことを表す記号
普通の=一個だと代入記号とややこしいから便宜上そうなってる

->はオリジナルの記号で意味は>No.115217
に書いた通り
10無題Name名無し 21/05/18(火)17:59:26No.115222+
補足するとデジタル時計の時間表記はmod 24だね
0時, 1時, ..., 23時ときてその次は24時じゃなくて0時に戻る
24を24で割った余り = 0を24で割った余り = 0
つまりmod 24の世界では24と0は同じ数
同様に25時は1時のことだよね なぜなら,
25を24で割った余り = 1を24で割った余り = 1
つまりmod 24の世界では25と1は同じ数
普通のプログラミング言語ではaをbで割った余りのことを
a % b
と書く. pythonでもそう
この表記で行くと, 22時の10時間後は32時と言ってもいいけど普通は
32 % 24 == 8
だから8時ということになる
11無題Name名無し 21/05/18(火)19:54:21No.115223+
北風と太陽の童話を思い浮かべたら良い
グー → チョキ → パー → グー → チョキ→ パー ……
の順にグー、チョキ、パーさんが家を構えて住んでいたとする

いま一番左のグー氏の住所を0としたら、グー氏は
1軒右(住所1)の住人(チョキ)には勝って、2軒右(住所2)の住人(パー)には負ける

住所1の住人チョキ氏は
1軒右(住所2)の住人(パー)には勝って、2軒右(住所3)の住人(グー)には負ける

住所2の住人パー氏は
1軒右(住所3)の住人(グー)には勝って、2軒右(住所4)の住人(チョキ)には負ける

という関係にある
12無題Name名無し 21/05/18(火)19:55:40No.115224+
書き込みをした人によって削除されました
13無題Name名無し 21/05/18(火)19:58:37No.115225+
さらに、3軒右まで進むと、誰さんも同じ一族の家に行きつく
(グーならグー、チョキならチョキ、パーならパーの家に着く)から勝ちも負けもなくあいこや

ここまでの話では、左方向に何軒離れているかでは勝ち負けがさっぱりわからないから、
とにかく ①相手より右隣にある ②同族の家 に出撃してもらう方針に汁、

当方がグー(住所0)なら、チョキ(住所1)やパー(住所2)の右隣であるグーの一族は住所3や
当方がチョキ(住所1)なら、グー(住所0)やパー(住所2)の右隣であるチョキの一族は住所4や
当方がパー(住所2)なら、グー(住所0)やチョキ(住所1)の右隣であるパーの一族は住所5や

何にせよ3を足したら出撃いただくべき家の住所がワカル

で、(出撃いただく家の住所)-(相手の手の住所)が1なら、相手のすぐ右隣なので当方の一族が負ける
  (出撃いただく家の住所)-(相手の手の住所)が2なら、相手の2軒右隣なので当方の一族が勝つる
  (出撃いただく家の住所)-(相手の手の住所)が3なら、同族なのであいこや
14無題Name名無し 21/05/18(火)20:31:45No.115226+
書き込みをした人によって削除されました
15無題Name名無し 21/05/18(火)20:33:07No.115227+
いやちょっと待てや、
とここで同族からクレームがつくことがある

1) 当方がチョキ(住所1)で相手がグー(住所0)のとき
2) 当方がパー(住所2)で相手がグー(住所0)のとき
3) 当方がパー(住所2)で相手がチョキ(住所1)のとき
これらのいずれかのとき、
(出撃いただく家の住所)-(相手の手の住所)で計算した出撃いただく家が
相手から4軒以上右に離れてしまう。このときは3件戻した家を戦いの当番にせねばならない(それが相手に最も近い右隣の家にあたる

そうするには%3を使い、
 1)のとき: ((出撃いただく家の住所)-(相手の手の住所)) % 3 = ((1+3) - 0) % 3 = 1
 2)のとき: ( (出撃いただく家の住所) - (相手の手の住所) ) % 3 = ((2+3) - 0) % 3 = 2
 3)のとき: ( (出撃いただく家の住所) - (相手の手の住所) ) % 3 = ((2+3) - 1) % 3 = 1
と計算しておけば、常に相手から3軒以内で出撃すべき家が決まって丸く収まる
16無題Name名無し 21/05/19(水)23:22:10No.115228そうだねx2
> グー=0 チョキ=1 パー=2 としてコンピュータとじゃんけんをして
> 引き分け=0 勝ち=1 負け=2 という答えを導き出すにはどうすればいいでしょうか。

答え = (自分の手 + 自分の手 + 相手の手) % 3
でもいいかも
17無題Name名無し 21/05/21(金)20:57:34No.115229+
    1621598254575.jpg-(16010 B)
16010 B
これは初心者には無理
18無題Name名無し 21/05/22(土)12:03:53No.115236+
ジャンケンマンのアルゴリズムってどうなっていたんだろ?
あちこちに置かれていて、異彩を放っていたよな。

こっちがランダム戦略を取れば一定の確率で勝てる場合もあるのか?
19無題Name名無し 21/05/23(日)02:17:59No.115237+
あーいこーでしょ!でしょ!でしょ!やったー
20無題Name名無し 21/05/23(日)12:18:31No.115239+
> こっちがランダム戦略を取れば一定の確率で勝てる場合もあるのか?
グーチョキパーを1/3の確率でランダムに出せば勝ち、負け、あいこが1/3ずつになるはず
もし結果が1/3ずつにならなければ何かズルをしている(後出しとか)
21無題Name名無し 21/05/26(水)06:45:15No.115243+
>答え = (自分の手 + 自分の手 + 相手の手) % 3
>でもいいかも
mod 3 なら 2 = -1 だかね
自分の手 + 自分の手 + 相手の手
= 2 * 自分の手 + 相手の手
= - 自分の手 + 相手の手
= 相手の手 - 自分の手
22無題Name名無し 21/05/28(金)06:06:30No.115256+
確率変動真偽値==false

コンピュータが出す手=
 確変真偽値がfalse
  プレイヤーがグー グーかパー
  プレイヤーがチョキ チョキかグー
  プレイヤーがパー パーかチョキ
 
 確変真偽値true
  プレイヤーがボタンを押した グーかチョキかパー
23無題Name名無し 21/07/26(月)19:12:37No.115619+
なるほど
24無題Name名無し 21/07/27(火)00:30:37No.115626+
>No.115239
↑にじゃんけんプログラムのヒントがあるじゃん
人間が何を入力したかに関係なく、ランダムに0,1,2のどれかを1/3の確率でだしてやればいい
という発想の転換をしろってどっかで読んだ
25無題Name名無し 21/07/27(火)13:23:26No.115627+
それは違う。
人間は真にランダムな現象を「やや連続している」と感じる。コレは本能だから仕方ない。これをクラスター錯覚という。

コレを突く!

人間はコンピュータがランダムに手を出していると考え、連続した手が出にくいと予想する。したがって、基本はランダムに手を出して、時々ランダムより連続させた手を出せば対人戦略として錯覚を突いた手を出せる。

あとは、人間がわざと同じような手を連発する戦略に対してのアルゴリズムを搭載すれば良い。
26無題Name名無し 21/07/27(火)18:49:49No.115628+
頭よろしくないから馬鹿正直に力技で条件式を作っちゃいそう…みんな頭いいなぁ
プレイヤー側の数を10の位、相手を1の位にして
結果を適当な変数に入れて
グー対グー   00 引き分け
グー対チョキ  01 勝ち
グー対パー   02 負け
チョキ対グー  10 負け
チョキ対チョキ 11 引き分け
チョキ対パー  12 勝ち
パー対グー   20 勝ち
パー対チョキ  21 負け
パー対パー   22 引き分け
変数が1,12,20のときに勝ち
変数が2,10,21の時に負け
変数が0,11,22の時に引き分けって書いちゃいそう…
27無題Name名無し 21/07/27(火)20:59:41No.115629+
乱数と錯覚については、どこかのガチャ式スマホゲーの会社の人が論文を書いて PDFをネットにあげていたよ。

普通に乱数をガチャに実装すると「あまりにも偏っている」と文句が来るそうだ。だから、きちんとした乱数よりも「バラけた」乱数に操作して実装しているそうだ。
これがクラスター錯覚。
28無題Name名無し 21/07/28(水)04:20:03No.115631+
ソシャゲのガチャは分母が減らないからさらにややこしくなるね
29無題Name名無し 21/08/01(日)19:19:17No.115670そうだねx2
漏れが初めて作ったゲームが、絶対勝てないジャンケンポンだった。
グーボタン押すと、パーの絵が表示されるもの。
妹は激怒した。

次は、絶対に勝てるのに改造した。
こっちがグー押すとチョキ出るやつ。
妹は3回で白けてやめた。

次は確率操作して、3回に1回負けるよう八百長した。
妹にパターンをすぐ見破られた。

そして、どうやったら妹に長く続けさせられるか。
射幸心を煽って廃人にさせられるか。
はじめ勝たせて気持ちよくして、辞め時をつくらせない。
みたいな心理学の分析を、小学生でやっていたんだよ。
30無題Name名無し 21/08/01(日)19:27:01No.115671そうだねx1
作り話キモイw
31無題Name名無し 21/08/01(日)20:05:02No.115672+
ええっ、マジ話だよw
こんな嘘ついて意味ないよw
32無題Name名無し 21/08/03(火)11:56:52No.115689+
> No.115670

元カプコンのゲームプロデューサー岡本吉起がYouTubeで言ってた話を思い出した。
33無題Name名無し 21/08/22(日)23:53:15No.115783+
相手してくれるええ妹さんやないか
廃人にさせようなんて思ってやるなよ
34無題Name名無し 21/08/23(月)03:47:31No.115784+
ぱそこんちゃんに乱数振らせると乱数にならんやつだ

- GazouBBS + futaba-