京都大学の大学祭のカウントダウン

Pocket

京都大学で面白い立て看板があったそうです。

第64回ということで、6,4,5,2,1の順番を変えずに四則演算だけで32から0までカウントダウンしようということのようです。
調べてみました。

Pythonで虱潰しをやってみると次のようになりました。

0 6+4-5*2*1
1 6+4-5*2+1
2 6+4-5-2-1
3 6+4-5-2*1
4 6+4-5-2+1
5 6-4+5-2*1
6 6+4-5+2-1
7 6+4-5+2*1
8 6+4-5+2+1
9 6-4+5+2*1
10 6-4+5+2+1
11 6-4+5*2-1
12 6+4+5-2-1
13 6+4+5-2*1
14 6+4+5-2+1
15 6+4*5/2-1
16 6+4+5+2-1
17 6+4+5+2*1
18 6+4+5+2+1
19 6+4+5*2-1
20 6+4+5*2*1
21 6+4+5*2+1
22 6*4-5+2+1
23 6+4*5-2-1
24 6+4*5-2*1
25 6+4*5-2+1
26 6*4+5-2-1
27 6+4*5+2-1
28 6+4*5+2*1
29 6+4*5+2+1
30 6*4+5+2-1
31 6*4+5+2*1
32 6*4+5+2+1
33 6*4+5*2-1
34 6*4+5*2*1
35 6*4+5*2+1
36 not found
37 not found
38 not found
39 not found
40 not found
41 not found
42 not found
43 not found
44 not found
45 6+4*5*2-1
46 6+4*5*2*1
47 6+4*5*2+1
48 not found
49 not found

0から35まで表せます。
これを見つけた人はすごいです。
来年の6,5,5,2,1だと0から15まで表せました。

import itertools

def main():
  for target in range(0, 50):
    result = sagasu(target)
    print(target, result)

def sagasu(target):
  marks = ["+", "-", "*", "/"]
  p = itertools.product(marks, marks, marks, marks)
  for m in p:
    shiki = f"6{m[0]}4{m[1]}5{m[2]}2{m[3]}1"
    result = eval(shiki)
    if target == result:
      return shiki
  return "not found"

if __name__ == "__main__":
  main()

[ 2022年10月24日 | カテゴリー: 小ネタ | タグ: , , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報