kt3k 日記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LCM of 1 to n

anarchy golfLCM of 1 to n という問題が出てたので回答。(1ゲット)
出題1時間以上で、誰も解いてなかったので、もしかしたら、最後の方の
出力が計算が間に合わないのか?とか疑いながらコードを書いていたけど、
普通に、1 から n の lcm を地道に計算して解けた。書いてる途中で、
lcm(lcm(k, m), n) = lcm(k, m, n)
が成り立つんだったかどうだか、が不安になって、理由を考えながらコードを書いてたけど、
確かな証明が思い浮かぶ前にコードが書き終わってた。

Alnum challenge(?)

anarchy golf で、Alnum challenge という問題を出題。
説明文の、using as few symbols as possible の部分が「できるだけ、少ないシンボル数で」
というつもりで書いてたんだけど、「できるだけ小さなシンボルコードで」(つまり全く逆)
の意味にも取れることに気がついて、ちょっと悲しくなった・・・。
まあ、でも、そういうの関係なく解いてくれてる人もいるので、まあいいや・・・

追記(2008/11/03):
答えオープン。
一部の言語で、普段見掛けない感じのコードがいくつか上がってたので、良かったかな

趣味CG

○今日の成果物

cell1

cell2

○レシピ
・セルを縦につなぐ関数
・セルを横につなぐ関数

・枠を書く関数
・枠の太さ D に対してランダム(14% < D < 23%)

・色はHSLで指定。
・Hue と Saturation を固定して、Lightness L に対してランダム(0 < L < 1)
(Hue は割とどれでもいいけど、Saturation は低めの方が感じが良い。が、完全に0 付近だと、灰色になってつまらない。)

虹を書く関数

HSL という色の表わし方から、RGB に変換すると、
色見本とかでよく見る虹みたいなやつが簡単に書けるらしい・・

rainbow

参考サイト:http://en.wikipedia.org/wiki/HSL_and_HSV
(日本語ページは式が載ってない)

○ソース(python)

def hsl2rgb(h, s, l):
assert any(isinstance(x, float) for x in (h, s, l))
assert 0 <= h < 360
assert 0 <= s <= 1
assert 0 <= l <= 1
if l <= 0.5:
sat_diff = s*l
else:
sat_diff = s*(1-l)
max = l + sat_diff
min = l - sat_diff
hue_diff = 2*sat_diff*(h%60)/60
if h < 60:
r = max
g = min + hue_diff
b = min
elif 60 <= h < 120:
r = max - hue_diff
g = max
b = min
elif 120 <= h < 180:
r = min
g = max
b = min + hue_diff
elif 180 <= h < 240:
r = min
g = max - hue_diff
b = max
elif 240 <= h < 300:
r = min + hue_diff
g = min
b = max
elif 300 <= h :
r = max
g = min
b = max - hue_diff
return r, g, b



追記(2008/10/27):python の標準ライブラリを眺めてたらすでに同じものがあった・・・orz

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。