面接官「チャットツール上でじゃんけんをする方法を考えて下さい」
■ このスレッドは過去ログ倉庫に格納されています
運なんだから投稿時間コンマ1桁を3で割って余り012をそれぞれグーチョキパーとかに割り振ってやればよくね プラグイン開発
コマンド入力時に予め自分の手は決めておいて
相手の手をボタン入力させるUI付きで表示
相手がボタンで手を選択したら
予め決めておいた自分の手との勝敗判定をし
結果表示も行う
プログラマブルでボタン的UIが可能でチャットでしか無理だけど >>2
これなんなん?って思ったら全部自演なのかよ怖いな ①Aさんが合成数paを出す
ただしpaは素数a1<a2に対してpa=a1*a2
②Bさんが合成数pbを出す
ただしpbは素数b1<b2に対して
pb=b1*b2
③最後にA,Bさんがa1,b1を公開してf(a1),f(b1)をジャンケンの手と見なして勝敗を決めるただしf(x)=0でグーf(x)=1でチョキf(x)=2でパー >>22
いずれにしても
相手の2つ目の数字が割り出せるんじゃ意味ないんだよな >>19
fで計算できるなら相手の出した手分かっちゃうんじゃ >>21
3通りだと意味ないから乱数でパディングすればいけそうだな 乱数絡んでくるなら手を選べないし
もうそれはじゃんけんじゃなくてチンチロリンとかと同じだと思うの >>19
これ結構良いな
関数f(x)はxが2から数えてn番目の素数のとき、n mod 3でいいのでは? >>23
最初にpa,pbを提出した時点でジャンケンの手は確定してるから嘘のa1,b1を出しようがない嘘をついたらバレるから
だからpa,pbを出した時点であとは計算するしかない >>29
違う
例えばグー123のハッシュ値を出す
それを互いに出し合ってその後で元の値を示せばハッシュ計算前と後で手が変わってないことを証明できる >>21
hashだと楽だな
1. お互いに自然数を用意する
2. お互いにハッシュ値を計算して送る
3. お互いに用意した自然数を共有する
4. 3で割ったあまりが0,1,2をそれぞれグー・チョキ・パーとして勝敗決定 >>33
それはある
けど公開鍵暗号として巨大な素数にすれば計算しにくくなる お互いに非公開のチャットルームを作って手を出したあとに公開する >>30
素数が与えられたとき、その素数が何番目の素数かって問題は、素因数分解と同じぐらいむずい気がしてきた
何番目の素数かが計算できるなら、素因数分解もできちゃうね 双方はA,B,Cのどれかを提示することにして
後からランダムに
グーチョキパーに当てはめればよくね?
商売確率は変わらんし うちの会社でもそうなんだけど技術者って難しいこと、技術的なことをやる事が目的になってるアホが多い
低コストでリターンを最大化出来る奴が一番偉い >>41
ランダムにルール決めるなら、ランダムに勝敗決めれば良くね? >>42
>>2なんか特別な環境なくてもできるけど >>42
手を出すたびに秘密のチャットルームを作るのが低コスト? >>42
でもそれって低コストでリターンを最大化できるのは技術者のおかげだということを無視してるよね チャットツールにファイル送信機能があれば暗号化したファイルとかでいけるか 自分の手を公開するチャットと相手の手を公開するチャットに書き込む
手を出し終えたらお互いに公開する >>2の解説
1. 双方プレイヤーはそれぞれ出す手と推測されないランダムな文字列を決める
2. 双方プレイヤーは「手 + ランダム文字列」のハッシュ値をチャットに書き込む
3. 双方プレイヤーは自身が選んだ手とランダム文字列を公開する
4. 申告した「手 + ランダム文字列」のハッシュ値がチャットに書き込まれたものと一致すれば検証完了 書き込み時間の下二桁の数字がデカければ勝ち
とかでいいじゃん
ジャンケンじゃないけど勝者と敗者を決めるという目的は達成できる ■ このスレッドは過去ログ倉庫に格納されています