とにかく進むねん。
勉強サークルのブログです。 もがきながらでも進むこと。 これがモットーです。
ブログ内検索
リンク
管理画面
新しい記事を書く
カレンダー
03
2025/04
05
S
M
T
W
T
F
S
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
アーカイブ
2012 年 12 月 ( 3 )
2012 年 11 月 ( 11 )
2012 年 10 月 ( 4 )
2012 年 09 月 ( 5 )
2012 年 08 月 ( 4 )
プロフィール
HN:
betweens
性別:
非公開
カウンター
カテゴリー
宿題 ( 10 )
colinux 設定 ( 16 )
colinux network設定 ( 4 )
検索エンジン付き合い方 ( 9 )
C++ ( 2 )
未選択 ( 102 )
shell script ( 1 )
code golf ( 66 )
Haskell ( 14 )
Python Challenge ( 2 )
Project Euler ( 2 )
Python Study ( 3 )
英語 ( 1 )
JAVA ( 3 )
ゴミ情報 ( 1 )
RSS
RSS 0.91
RSS 1.0
RSS 2.0
最新CM
無題
[11/07 betweens]
無題
[11/07 元左席人]
無題
[08/30 betweens]
無題
[08/30 元左席人]
無題
[10/02 元左席人]
最新TB
最新記事
anarchy golf (Haskell) [Number lines]
(12/13)
anarchy golf (Haskell) [spirals] 【Vol.4】
(12/06)
anarchy golf (Haskell) [ two kinds of digit ] 読解
(12/05)
anarchy golf (Haskell) [Reduce fractions]
(11/13)
anarchy golf (Haskell) [Fill in the blanks]
(11/11)
最古記事
宿題 [2008.01a] colinux をインストールしよう
(05/10)
[2008.01a] colinux をインストールしよう(解答編1)
(05/15)
[2008.01a] colinux をインストールしよう(解答編2)
(05/17)
[2008.01a] colinux をインストールしよう(解答編3)
(05/18)
Google のノウハウ
(05/19)
フリーエリア
2025
04,04
18:11
[PR]
CATEGORY[]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
2008
12,07
23:05
Project Euler(Problem 2)
CATEGORY[Project Euler]
フィボナッチ数列だっ
Golf 場にも フィボナッチがあったので、
一緒に合わせて解いてみることにしたわけですよ。
http://golf.shinh.org/p.rb?Fibonacci+Numbers
=================================
● 以下のコードで実験したら、遅すぎて サーバがタイムアウトエラーに。。。
ひどい。。。
f 1=1
f 2=1
f n=f(n-1)+f(n-2)
main=mapM print[f k|k<-[1..46]]
=================================
○ net を漁っていたら、こんなすごいコードが見つかった。
f=1:scanl (+) 1 f
main=mapM print$take 46 f
f 自体がLISTなんだけど、再帰的に自分を呼んでいる。
なぜ、こうすると良いのかというのが、なんとなくは分かるけど 明確に理解できない。。。
というか、上記コードの場合、 f は元々は [] のリストと考えていくと フィボナッチになるんだけど、
コードに、一番最初の状態が書かれていない。
なぜ コンパイルが通るのか 全くわからない。。。
○ 36バイトのコードはなんか邪悪そうだ。
無視することにした。
=================================
● project euler は以下のようなやり方で解いた。
n=50 あったら、さすがに合計は 400万を超えているだろうという見込みだけの
反則技だが、【解いたら それでいいのだ】 と言いたい。。。 うーん
f=1:scanl(+)1f
g n|n`mod`2<1=n|1>0=0
h n|n>4000000=0|1>0=n
main=print$sum$map g$map h$take 50 f
=================================
PR
コメント[0]
TB[]
<<
課題リスト
|
HOME
|
Project Euler(Problem 1)
>>
コメント
コメント投稿
NAME:
MAIL:
URL:
COLOR:
Black
LimeGreen
SeaGreen
Teal
FireBrick
Tomato
IndianRed
BurlyWood
SlateGray
DarkSlateBlue
LightPink
DeepPink
DarkOrange
Gold
DimGray
Silver
SUBJECT:
COMMENT:
PASS:
trackback
トラックバックURL
<<
課題リスト
|
HOME
|
Project Euler(Problem 1)
>>
忍者ブログ
[PR]