[過去ログ] 「数学」をプログラミングするには (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(16): 2024/03/16(土)19:41 ID:nuwGv9us(1) AAS
たとえば、プログラミングで

π/4 = 1 - 1/3 + 1/5 - 1/7 + ...

を近似ではなく厳密に確かめるにはどうしたらいいの
人間が証明できるってことは、有限なアルゴリズムに書き換えられると思うんだけど
56
(3): 2024/03/22(金)15:38 ID:m8Pakijg(1) AAS
現代数学は集合と写像の言葉で書かれている
写像は関数の一般化だからC言語やHaskellなどの関数型言語では数学をプログラミングできない
RubyやPythonなどにはsetやmapといった機能があるから
これで数学をプログラミングできると思われる
70
(3): 2024/03/23(土)12:47 ID:g/HfMmmn(2/9) AAS
>>69
機械語に識別子はないからできないだろ。Cでは長さnの配列aの各要素に関数fを適用した結果を
配列bに格納する関数 map(f, a, n, b) を簡単に自作できる。
72
(4): 2024/03/23(土)14:11 ID:O64Y227M(2/5) AAS
>>70
普通mapは配列に対してではなく
もっと一般的にイテレータに対して適用
結果もイテレータとする

その結果を例えばfor文で使う場合
わざわざ結果を配列に入れても無意味だったことになるからだ
mapを多段にした使った場合も同様で中間結果配列は無意味になる
だからmapの入力も出力もイテレータが使われる
74
(3): 2024/03/23(土)15:36 ID:O64Y227M(3/5) AAS
>>73
配列から配列なんて嘘つきだな
例えば写像の入力を数学でもよくある自然数とする
これは配列では表現できない
イテレータならば表現できる
出力も同様で配列は不可能だがイテレータなら可能
126
(3): 2024/03/25(月)21:32 ID:VkynB6Jg(4/4) AAS
プログラマは数学である必要がある
230
(5): 2024/04/12(金)11:00 ID:n/WEiCkF(1/5) AAS
厳密に求められないからπという記号を用いたわけで
コンピュータで扱う場合はπという記号定数を使えばいいだけ
無限に続くので3.14...を厳密に求めることはできないのは数学もコンピュータも一緒
1がしたいことが何なのかよくわからん
260
(5): 2024/04/12(金)23:55 ID:lpyrPPhz(1) AAS
>>1
> たとえば、プログラミングで
>
> π/4 = 1 - 1/3 + 1/5 - 1/7 + ...
>
> を近似ではなく厳密に確かめるにはどうしたらいいの
> 人間が証明できるってことは、有限なアルゴリズムに書き換えられると思うんだけど

人間が証明出来るからって、有限なアルゴリズムに書き換えられるとは限らないんだよなぁ…。
そもそも人間の証明がlimとか使って(仮に無限回繰り返せれば)極限はnになる(だろう)って感じで有限のアルゴリズムじゃない訳で。
306
(4): 2024/04/15(月)12:44 ID:scEUff9F(4/17) AAS
>>305
だから存在をどうやって示すんだ
340
(7): 2024/04/16(火)16:09 ID:X3z51ZSN(1) AAS
>>337,339
そんなことより、これを大学数学初年度の回答レベルで解いてみてよ
画像リンク[jpg]:i.ytimg.com
596
(5): 2024/11/12(火)04:10 ID:15KCzjek(2/5) AAS
x^2 = 2をみたす正の実数xは一意的に存在する
なら、それを√2というシンボルで扱えるようにすべきだ
計算は必要なときにだけすればいい
x = 1.4142云々という数値にしなければ扱えないのは不要な制約

これは誤差があるとかそういう問題ではない
人間の思考をコンピュータの都合に合わせようとしているのが問題
644
(3): 2024/11/16(土)21:13 ID:ZAMRkSMG(1/2) AAS
>>641
Σ(n = 0, 100) 2^(-n) ≠2 -- 100の部分が∞になった時(2^(-∞))、初めて 2 になる。

数学だと真(True)になるが、Haskellプログラムは-53乗から答えが2になって、この式は偽(False)になる。
sum [2^^(-n) | n <- [0..53]] /= 2 = False -- 間違った答えを表示。

グラフアプリ(Webアプリ)のDesmosでも確認したので、専用のアプリや言語でも間違ってる可能性が高い。
こういう精度の問題がプログラムはメモリが有限である限り、必ず存在する。

(√2)^2 = 2

が正しく真になるかどうかもプログラム次第。
(こちらはグラフアプリの様な専用のものは対応してることが多い)
654
(5): 2024/11/18(月)02:18 ID:cmnYUiAb(2/8) AAS
というか、私の主張は

数学
lim_{k to 100} sum_{k=1}^{n} 2^(-k) -- ちゃんと近似値が出る。

プログラミング
sum [2^^(-n) | n <- [0..100]] = 2 -- 近似値ではなく、極限値の2になって(この時点での)正確な値ではない。

プログラミングはイプシロン-デルタ論法が(一定の精度までしか)出来ない。
それでも実用上問題は無いが。

他にも無限次元の空間とかも扱えない。
集合の添え字集合も可算集合とは限らない。
実数や複素数も有り得る。

リストや配列のインデックスが実数や複素数とかプログラミングじゃ出来ない。
687
(3): 2024/11/18(月)20:05 ID:cmnYUiAb(7/8) AAS
>>680
ε自体はな。
でも、真の値aに対して a + ε, a - εって使うのがイプシロンデルタ論法。
数学ではそれで限りなく無限に近くεを小さくしてもその範囲内に真の値が存在することを証明しているが、
プログラミングでは一定の大きさのεまでしか保証されない。

こういえばいいか?
真の値は確かにあるが、プログラミングでは間違った値を返す場合がある。

極限が正しければ厳密じゃない。
途中もすべて正しくないなら、それは厳密ではない。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.058s