お題:ニセコインを見つけよ

半年毎に数学板で出てくるお題

n枚のコイン(n≧3)の中から重さの違うニセコインを見つけには何回天秤つかえばよいか
なおどのコインも最低一回は天秤に乗せてニセコインが重いか軽いかも判定するものとする

答えは
e = ceiling( logBase 3 ( 2*n+2 ) )

さてさてこの回数で可能はそんなに難しくない
実際e行n列の1,0,-1からなる配列で

@どの行も1の数と-1の数が等しい(右の皿と左の皿に同じ数乗せる)
Aどの相異なる行u,vをとってもu ≠ ±v

となる配列が作れる
そこで n≧3 にたいしてこのような配列を出力するプログラムを作って下さい


3->
[[-1,0,1],[0,1,-1]]
10->
[[-1,0,1,-1,0,-1,1,1,-1,1],[0,1,-1,-1,0,0,0,-1,1,1],[0,0,0,0,-1,1,1,-1,-1,1]]

12->
[[-1,0,1,-1,0,-1,1,1,-1,0,0,1],[0,1,-1,-1,0,0,0,-1,1,-1,1,1],[0,0,0,0,-1,1,1,-1,-1,1,1,-1]

39->
[[-1,0,1,-1,0,-1,1,1,-1,0,0,-1,1,0,1,-1,-1,1,0,0,1,-1,-1,1,0,0,1,-1,-1,1,0,0,1,-1,-1,1,0,0,1],[0,1,-1,-1,0,0,0,-1,1,-1,1,-1,1,0,0,0,1,-1,1,-1,1,-1,-1,1,-1,1,-1,1,0,0,0,0,0,0,1,-1,1,-1,1],[0,0,0,0,-1,1,1,-1,-1,1,1,-1,-1,0,0,0,0,0,0,0,0,0,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1]]