4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

チャットでじゃんけんを平等に行いたい

Last updated at Posted at 2019-05-20

##公平に先攻後行決めたいですよね?

"じゃんけんで負けたほうが〇〇ね!"
日常的な会話でありますよね。
最近(?)、Lineの台頭によりチャット上で友人と会話することが増えました。しかし、チャットでじゃんけんをするのはとても難しいです。
せーので手(グー、ちょき、ぱー)を出せないからですね。
そこで、2つの素数を使ってじゃんけんに代わる平等なゲームがありますので紹介します

##素因数分解の一意性と難しさを使う
例えば、
36を素因数分解すると、
223*3以外の分解の仕方がないですよね。そういうことです

素因数分解の難しさとは、大きな数-例えば1234567を素因数分解してくださいと言われてもすぐ出来ないですよね。
大きな数の素因数分解はコンピュータを持ってしても長い時間が経ってしまいます。

##素因数と合成数の関係
まず、素数は2を除けば皆奇数であり
奇数を4で割ったあまりは1,3のどちらかである
4で割ったあまりが等しい奇数同士を掛けると、その積になる合成数を4で割ったあまりは1になります

p=1 mod4,q=1 mod4 \Rightarrow pq=1 mod4\\
p=3 mod4,q=3 mod4 \Rightarrow pq=1 mod4\\
p=1 mod4,q=3 mod4 \Rightarrow pq=3 mod4

これを使います。
ぼくとあなたがこのじゃんけんをするとしましょう。
僕が4で割ったあまりが等しい2つの素数を選びます。
5と13としましょう。
$5 \times13=65$ なのであなたに65とチャットを送ります。
あなたは1か3を答えてください(今は例なので一瞬で素因数分解出来てしまいますが、本来もっと大きい数なので素因数分解するのは諦めて当てずっぽうで答えてね)

あなたが選んだ数(1or3)を僕にチャットで送ったら、勝ち負けの判定です。
僕は5,13を開示し、掛け算をすると65になることを示し、5,13をそれぞれ4で割ったあまりが1であることを伝えます。
あなたが僕に送った数が1ならあなたの勝ち。3なら僕の勝ちです。
完全に平等院鳳凰堂です。

こんど僕とこれでじゃんけんしましょうね!!
##おまけ
もし、素数でなく合成数を2つ選ぶと。。。
$? \times?=1365$ で1365をあなたに伝えます。
あなたが1と答えたら 15,91を開示しあまりが3なので僕の勝ちです
あなたが3と答えたら 21,65を開示しあまりが1なので僕の勝ちです

4
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?