Everyday Pieces ::
  • Webサービス
  • ブログパーツ
  1. ホーム
  2. トピック

「第64回京都大学11月祭」のカウントダウンが面白い

2022年10月28日 2022年10月26日 トピック, プログラミング

「第64回京都大学11月祭」というのが、
2022年11月19日(土)~11月22日(火)に開催されるそうですが、そのカウントダウン看板が面白い(^_^;)

 6,4,5,2,1と並んだ数字の間に「+」「-」「×」「÷」が入ることで計算される結果で残り日数を示している、とのこと。うまく組み合わせることで、0~35まで一つずつ計算できるそうです。なかなか機知に富んでますね!

 ちなみに、
0~35までの組み合わせを求めるのを Python で書くと以下のようになるようです。4段forループを例外で抜ける作りがなんかオツです(^_^;) ときに、Python って eval があるんですね。知りませんでした。

operator = ["+", "-", "*", "/"]
answer = 0
while True:
	try:
		for o1 in operator:
			for o2 in operator:
				for o3 in operator:
					for o4 in operator:
						formula = "6{}4{}5{}2{}1".format(o1, o2, o3, o4)
						if answer == eval(formula):
							print("{}={}".format(formula, answer))
							raise Exception
		print("{} not found.....".format(answer))
		break
	except:
		answer += 1

 んで、
256通り(=44)ある組み合わせの結果のうち該当するのは以下の通りだそうです。計算結果「45」というのがありますが、35を超える次の組み合わせは45になってしまうということなのかな?

★2022年10月28日追記。
6,4は「第64回」に掛けているのだと思いますが、残りの5,2,1は何か関係があるのだろうかと調べてみたら、こちらを発見。京大125周年をもじったものらしいです(^_^;) この組み合わせに閃いてしまった人がいたのでしょうか? 何にしても発想がスゴイですね。

 ついでに、
なんとなくJavaScriptでやってみました。256通りのうちで結果がゼロ以上の整数になるものを列挙&ソートして出力。ちなみに、101通りあって最大値は 6*4*5*2+1 = 241 でした。直感的には全てが乗算の場合に最大値になりそうなのですが、その場合は 240 だったりします(^_^;)

(function() {
	const o = ['+','-','*','/'],r = [];
	for (let i=0;i<256;i++) {
		const f = `6${o[(i>>6)&3]}4${o[(i>>4)&3]}5${o[(i>>2)&3]}2${o[i&3]}1`,a = eval(f);
		if (a >=0 && a === (a|0)) {
			r.push({a,f});
		}
	}
	console.log(r.sort((a,b) => a.a - b.a));
}());

コメントする キャンセル

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

投稿ナビゲーション

工夫に感銘を受けた
WordPressを6.1に更新したらYARPPでエラー

カテゴリー

WordPress つぶやき トピック プログラミング

タグ

AS3 enchant.js FamilyTreeVis Flash Geolocation gif.js kinect Linux MMD MoneyTrackNote OpenCV PDFカレンダー RISC-V three.js セキュリティ テーマ自作 ブログパーツ 動物 動画 麻雀

アーカイブ

© Everyday Pieces ::