シェル芸/Problem 25
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* 問題(和訳) [#x665f07f]
Problem 25 「1000桁のフィボナッチ数」
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&p...
* 回答例 [#zc47f75f]
gawk -M 'BEGIN{a[1]=1;a[2]=1;print 1;print 1;for(i=3;i<=1...
* 実行結果 [#ze7e2e61]
#pre{{
4782 1000 10700662663827589367649805844573968850836838966...
real 0m0.061s
user 0m0.060s
sys 0m0.000s
}}
* 解説 [#l91ff485]
- MPFR を有効にした awk で、愚直にフィボナッチ数列を計算...
- 計算結果はリングバッファに格納していきます
#prism(bash){{{{
# MPFR を有効にする(-M または --bignum)
gawk -M '
BEGIN{
# フィボナッチ数列 F(1),F(2) を初期化&出力
a[1]=1;
a[2]=1;
print 1;
print 1;
# 取り敢えず F(10000)まで表示
for(i=3;i<=10000;i++){
# フィボナッチ数列を計算
a[i%3]=a[(i-1)%3]+a[(i-2)%3];
print a[i%3]
}
}' |
# F(n)の桁数を表示
# $1=n, $2=桁数, $3=F(n)
awk '{print NR,length($1),$0}' |
# 1000桁に達したら、表示して終了
awk '$2>=1000{print $0;exit}'
}}}}
終了行:
* 問題(和訳) [#x665f07f]
Problem 25 「1000桁のフィボナッチ数」
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&p...
* 回答例 [#zc47f75f]
gawk -M 'BEGIN{a[1]=1;a[2]=1;print 1;print 1;for(i=3;i<=1...
* 実行結果 [#ze7e2e61]
#pre{{
4782 1000 10700662663827589367649805844573968850836838966...
real 0m0.061s
user 0m0.060s
sys 0m0.000s
}}
* 解説 [#l91ff485]
- MPFR を有効にした awk で、愚直にフィボナッチ数列を計算...
- 計算結果はリングバッファに格納していきます
#prism(bash){{{{
# MPFR を有効にする(-M または --bignum)
gawk -M '
BEGIN{
# フィボナッチ数列 F(1),F(2) を初期化&出力
a[1]=1;
a[2]=1;
print 1;
print 1;
# 取り敢えず F(10000)まで表示
for(i=3;i<=10000;i++){
# フィボナッチ数列を計算
a[i%3]=a[(i-1)%3]+a[(i-2)%3];
print a[i%3]
}
}' |
# F(n)の桁数を表示
# $1=n, $2=桁数, $3=F(n)
awk '{print NR,length($1),$0}' |
# 1000桁に達したら、表示して終了
awk '$2>=1000{print $0;exit}'
}}}}
ページ名: