トップページ > プログラム > 2020年10月18日 > vmWunLYe

書き込み順位&時間帯一覧

21 位/136 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000012000000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
くだすれPython(超初心者用) その51【まず1嫁】
小6におすすめな言語

書き込みレス一覧

くだすれPython(超初心者用) その51【まず1嫁】
16 :デフォルトの名無しさん[]:2020/10/18(日) 11:01:34.94 ID:vmWunLYe
>>10
そう言うのは関数型言語的な発想。
もしくは同じオブジェクト指向でもメッセージパッシング主体のSmalltalkやRubyの発想。
Pythonのオブジェクト指向はC++的。

美しきHaskell畑へようこそ。
小6におすすめな言語
42 :デフォルトの名無しさん[]:2020/10/18(日) 12:19:22.62 ID:vmWunLYe
>>37
まあ、都市部から地方まで遍く子供達がPCとScratch使えればHaskellの出番は無いんだけどね。
小6向けは言語を変えるんじゃなくて、さらに複雑なアルゴリズムを学ぶ方向かな。

暇つぶしに組み合わせnCrを書いてみた。

数学
0! = 1
n! = n * (n - 1)!

n P 0 = 1
n P r = n * (n -1) P (r - 1)

n C r = n P r / r!


Haskell
fact 0 = 1
fact n = n * fact (n - 1)

n `p` 0 = 1
n `p` r = n * (n - 1) `p` (r - 1)

n `c` r = n `p` r `div` fact r
小6におすすめな言語
43 :デフォルトの名無しさん[]:2020/10/18(日) 12:19:51.59 ID:vmWunLYe
Python
def fact(n):
a = 1
for x in range(1,n + 1):
a *= x
return a

def p(n,r):
a = 1
for x in range(n - r + 1,n + 1):
a *= x
return a

def c(n,r):
return (p(n,r) // fact(r))


Haskellのfactと`p`はPythonの書き方に合わせるとそれぞれ

fact n = product [1..n]

n `p` r = product [(n - r + 1)..n]

になる。
数学ではproductはΣ(シグマ/sum)の掛け算バージョンであるΠ(大文字のπ)に相当。
普通の言語にはsumはあってもproductは何故か無い。
(まあ作れば良いんだけど)


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。