Redundanz

僕の言葉は、人と話をするためにあるんじゃない。

0926

 零狐春なる謎制作団体を運営している友人から、裏サンデーとのコラボイベント、迷宮バアルデバッグのお誘いを頂いたので参加してきました。未完成な部分も結構あったのですが面白かったです。ちょっと見ていてハラハラするけれども、成功するといいなと思います。

 夕方からバイト。久しぶりに大量の問題を捌きました。マラソンっぽい感じはそんなに嫌いではない。そういえばこの前やってきた問題「1から15までの数字を何個か選ぶとき、それぞれの数字が2以上離れているような選び方は何通りあるか」に対して誤答ではないかとの返答をもらっていたのでコンピュータで解いたのですが普通に合ってるっぽいし謎です。方法にも特に問題はないし。

 それなりに気に入っているアルゴリズム(うまい方法はもっとたくさんあるのだろうけど)。

def solve_sub(a, z)
	if a.length() == z then
		if check(a)
			@x += 1
		end
	else
		b = copy(a)
		c = copy(a)
		solve_sub(b.push(0),z)
		solve_sub(c.push(1),z)
	end
end

def check(a)
	m = 0
	num = a.length()
	for i in 0..(num-2)
		if a[i] == 1 && a[i+1] == 1
			m += 1
		end
	end
	if m == 0 then
		return true
	else
		return false
	end
end

def copy(a)
	b = []
	for i in 0..(a.length()-1)
		b[i] = a[i]
	end
	return b
end

def solve(n)
	@x = 0
	solve_sub([],n)
	puts @x-1
end

solve(15) #=>1596


 はてなブログの方も使ってみるようになって、なかなかいいなと思うようなってきました。もしかしたら移行するかもしれません。でもダイアリーも気に入ってるし、慣れちゃっているのよね。ううむ、悩みどころ。