写真共有サイトPHOTOHITO人と写真をつなぐ場所

nshinchan nshinchan ファン登録

階乗を求めるHaskellプログラム

階乗を求めるHaskellプログラム

J

    B

    あんまり天気悪い日が続いたので久しぶりに触って夢中になってました^^; いつの間にか普通の再帰もループに変換されるようになってて驚きました。 ファイルの解析とか出来ないので実用的なの作れないけど、Haskellが一番触ってて楽しい。 中学生のお子さんとか居られたら、入門書と一緒に教えたら数学が好きになるかも知れませんよ?(^_-)-☆ 数学とすごく相性のいい言語です。 関数型言語は数学から発展した言語ですので、紙と鉛筆があれば動かせます。

    コメント10件

    nshinchan

    nshinchan

    あ、(n!-1)じゃなくて(n-1)!だった。。。orz

    2016年04月29日23時29分

    fukuma

    fukuma

    全然理解できませんが……^^;

    2016年04月29日23時52分

    nshinchan

    nshinchan

    入門書を読めばとりあえず分かります^^; 階乗は n!=n x (n-1) x (n-2) x... x 1 なので、 0! = 1 n! = n x (n - 1)! と言うのが成り立ちまして、Haskellはそれの「!」に名前付けて、言語の規則に合わせ前に持ってきただけで、ほとんどそのままの姿を残したまま動きます。

    2016年04月30日06時10分

    nshinchan

    nshinchan

    応用が出来ないのでこっちのプロは諦めました^^;

    2016年04月30日06時51分

    AREA884

    AREA884

    全く解りません(^_^;)

    2016年04月30日07時01分

    nshinchan

    nshinchan

    上の式に具体的な数字を入れて試すと分かりやすいです。 3! = 3 x 2! = 3 x 2 x 1! = 3 x 2 x 1 x 0! = 3 x 2 x 1 x 1 = 6

    2016年04月30日12時21分

    AREA884

    AREA884

    ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

    2016年04月30日17時57分

    nshinchan

    nshinchan

    んーと。。。 まず3の階乗である3!は 3! = 3 x 2 x 1 = 6 なんです。 んで、上の式は 3!は3 x 2!と同じ。(3! = 3 x (3 - 1)! = 3 x 2!) つまり、3の階乗は3に2の階乗を掛けたものと同じと言ってて、じゃあ、2の階乗は? 2! = 2 x 1! (2! = 2 x (2 - 1)! = 2 x 1!) と、2に1の階乗を掛けたものと同じなんです。 こうして、どんどん小さい問題に分解していくと、最終的にゼロの階乗は1(0! = 1)である。と言うこれ以上分解できない問題に到達するので、そこで全部の問題が計算可能な状態になるって言う話で、Haskellはそれをほぼそのまま書けるって話。。。です^^;

    2016年04月30日19時33分

    fukuma

    fukuma

    分かりやすい解説!ありがとうございます。 多少分かった気がします。(ほんとに分かったかな?)

    2016年04月30日22時39分

    nshinchan

    nshinchan

    人間って楽しい事しか早く覚えないらしくて、だったら勉強も楽しいって思えば覚えるのが速いと思うんです。 実際、動物好きから理科が好きになった私は、理科だけは成績良かったですし。。。 階乗を始めとする再帰ってウニョーンと伸びて、シュルル。。。と縮んでいくイメージ(´・ω・`)

    2016年05月01日01時49分

    新規登録ログインしてコメントを書き込む

    最近お気に入り登録したユーザー

    写真を削除しようとしています。

    本当に写真を削除しますか?

    こちらのレビューを他のユーザーに公開します。

    レビューを公開しますか?

    コメントを削除しようとしています。

    選択したコメントを削除しますか?

    エラーが発生しました

    エラー内容

    PAGE TOP