「数学」をプログラミングするには

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/03/16(土) 19:41:45.98ID:nuwGv9us
たとえば、プログラミングで

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

を近似ではなく厳密に確かめるにはどうしたらいいの
人間が証明できるってことは、有限なアルゴリズムに書き換えられると思うんだけど
2024/07/23(火) 10:43:32.92ID:Kdzr5IGr
整数を半分にします
564デフォルトの名無しさん
垢版 |
2024/07/31(水) 00:58:55.05ID:YsLojSCU
>>562
Haskellだと分数型があるから、整数型と分数型のタプルにするとして、分数を型の方で1/2に限定できないから、四則演算の演算子の方に分数が1/2かどうかとか、半整数型で閉じてないから、計算結果の型を条件ごとに…肩を同じにしないといけないから無理だ。

分数型で統一して、半整数の条件満たしてるか判定した方が早そう。
専用演算子の返す値の型は…分数と半整数かどうかの判定結果のタプルかな?
(Ratio, Bool)
奇数・単偶数も見分けた方が良いだろうし、Boolの方を4値位のHeafIntFlg型?的なの作るか?

data HIFlg = HInt | Odd | SEven | AEven deriving Show

type HInt = (Ratio, HIFlg)

試しに(Ratio,Bool)で作れそうか見てみた。(Haskellの分数型は%が/の代わり)

ghci> (1+1%2,True) -- 1+1%2 = 1 + 1/2
(3 % 2,True)

うん。
行けそうだね。
>562、ここまでお膳立てすれば後は出来るよね?じゃあねノシ
565あぼーん
垢版 |
NGNG
あぼーん
2024/08/27(火) 18:58:40.55ID:cp4Z1Add
>>565
めっちゃ簡単よ
567デフォルトの名無しさん
垢版 |
2024/10/03(木) 09:59:27.49ID:Z/ktGrzU
NHK BS 熱血Bリーグ
司会者:「今日から彩雪さんが登場です」
ゲスト一同:「うぇーい」
司会者:「彩雪さんは高校の教師もしておられます」
一同:「うぇーい」
司会者:「彩雪さんは何の科目?」
彩雪:数学です
ゲスト:「高校数学なんてついていけない」
司会者:「大学では何を専門に?」
彩雪:複素解析です
司会者:「複素解析?なんですそれは?」
彩雪:複素数は御存知ですか?
一同:「・・・」
彩雪:「・・・」
2024/10/04(金) 13:34:20.62ID:RixEjMnj
1729とは
2024/10/05(土) 15:11:52.05ID:u1hwkRNd
>>568
誰もそんな話をしてないぞ
ガイジ
570デフォルトの名無しさん
垢版 |
2024/10/20(日) 19:53:15.13ID:Xkf3xe26
こういうのはLLMでどうにかならんの?
o1で推論能力かなり上がったらしいけど
571デフォルトの名無しさん
垢版 |
2024/10/20(日) 20:30:20.00ID:Rpp5gjxc
無理かな。

決定論的な数学(微分積分見たいな予測の方の数学)のラプラスの悪魔(すべての現在の状態が分かればすべてを予測可能)と
確率論的な数学のLLMの引数を無限にすれば万能関数になるってのは多分、別々の道を進んだ先が同じになるパターン。

現実的には無理だけど、その極限で全く別に見えた数学の分野が交差する瞬間と考えるとちょっと感動。
2024/10/20(日) 21:00:22.63ID:hJ3wIO0s
漠然としすぎ
2024/10/20(日) 21:03:05.38ID:jAtz6juv
eとπと素数やね
2024/10/20(日) 21:09:32.76ID:hJ3wIO0s
>>571
それたんにNNのこと言ってだけで
language modelでやる説明になってない
2024/11/03(日) 20:04:29.51ID:H5/A1U4T
ここまで表示的意味論の話題無し。
数学とプログラミングだったら必須じゃね?表示的意味論
576デフォルトの名無しさん
垢版 |
2024/11/03(日) 20:10:04.71ID:W/WQS3jI
専門外(そもそも趣味なので専門以前)だが、確かに詳しい人が居たら聞いてみたい
577デフォルトの名無しさん
垢版 |
2024/11/03(日) 20:24:44.88ID:H5/A1U4T
俺も詳しくはないが、具体的に何を聞きたい?
やっぱりモナド?
578デフォルトの名無しさん
垢版 |
2024/11/03(日) 21:59:26.71ID:W/WQS3jI
表示的意味論でプログラミング不可能な部分とか、その逆にプログラミングで出来るけど表示的意味論では不可能な部分。
要するに表示的意味論的にスレタイの「数学」をプログラミング。は可能か否か。
2024/11/03(日) 23:54:35.53ID:H5/A1U4T
プログラミングでできるけど表示的意味論で不可能な部分なんて大量にあるのでは。
表示的意味論なんて関数型プログラミングありきだし、命令型プログラミングの概念とかを直接的には全然反映できない。

命令型だろうがオブジェクト指向だろうが、いったん中間言語として関数型プログラミング言語に変換してさらに
それを表示的意味論で数学にして、というようなことを最終的にやりたいんだろうとは思う。

一応表示的意味論で、入出力とかも扱えるし、既に表示的意味論的に定式化されている概念を駆使すれば、現実のプログラムの
概念を既に表示的意味論に定式化されている概念に還元させるということは原理的にはできるのかもしれない。
2024/11/03(日) 23:55:07.03ID:H5/A1U4T
でも、問題はプログラミング言語のいろんな特徴を反映させたデータ領域というのが、機能をひとつ追加するごとにその
定義の記述がめちゃくちゃ複雑になるというところにあると思う。つまり原理的にはできるかもしれないけれど、
現実的には不可能ってやつ。

結局、プログラミングでできる部分を数学にするにも、結局プログラミングしないといけないとかいう状況になる。
表示的意味論はそのプログラミングでできる部分をプログラミングするという意味のプログラミングの機能が乏しい。特にモジュール性がない。
581デフォルトの名無しさん
垢版 |
2024/11/04(月) 19:51:27.22ID:rdTeenaM
原理的に可能でも、現実的には不可能…なるほど…。
もっと原理的にも不可能な部分が多いかと思っていたので意外でしたし、大変勉強になりました。

ありがとうございましたm(_ _)m
582デフォルトの名無しさん
垢版 |
2024/11/04(月) 19:59:50.07ID:xJc0M/SU
いや、知らんけど。俺も勉強中の身だからまともに受け取らないでほしい。
2024/11/04(月) 20:17:23.94ID:rgFUj3k3
それより「表示的意味論」てう用語は全角漢字6文字で長いから
君のその文章の中に頻繁に出てくるソレが読んでる間にゲシュタルト崩壊して頭に入ってこないんだよね
これは日本語で専門分野の説明をする際の難しさの一因になってると思う
英語だとDenotational SemanticsらしいからDSでいいんじゃないかね
2024/11/04(月) 20:20:29.03ID:GSVf3MJi
表示的意味論
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/96270/1/Tronso_35_16.pdf
2024/11/04(月) 20:25:56.12ID:rgFUj3k3
「プログラミング」これも長ったらしい
短い言い換えはできないもんかね
「表示的意味論はそのプログラミングでできる部分をプログラミングするという意味のプログラミングの機能が乏しい」
そういう意味ではこんな一文よく平気で晒せるな、思うわけよ
専門用語で言葉遊びしたい子かなとか単に頭悪そうとか、そういう感想しか出てこないわけよ
2024/11/04(月) 21:23:55.12ID:xJc0M/SU
なんか夢見てる感じの文章な気がするぞ。

うーんじゃあどう言い換えるの?

関数型言語を中間言語にしてプログラム変換?
なんか簡潔すぎて意図通じない感がするけどなあ。
2024/11/04(月) 21:29:44.91ID:xJc0M/SU
Rubyとかを表示的意味論(DS?)で数学的対象与えようとすると、データ領域の定義が滅茶苦茶複雑になるから、意味論なのに人間には理解できないとかそういうことになると思うけれど
2024/11/05(火) 12:30:03.11ID:YSt/y3gD
DSの定義とは
Data Segment
Deeeep State
2024/11/05(火) 12:43:26.91ID:wPisPIWq
任天堂DS
Decision System
2024/11/05(火) 17:56:28.98ID:jvZmHUTK
💣💣💣detonational semantics💣💣💣
2024/11/05(火) 18:15:43.16ID:jjQPMbtg
表示的意味論をDSって略すのほとんど見たことない
2024/11/10(日) 16:05:57.01ID:AfmJKCJ3
プログラミングの課題
watch?v=dYj0rPQeRkA
2024/11/10(日) 20:31:29.56ID:jDHxe7Rv
>>592
ガイジ
594デフォルトの名無しさん
垢版 |
2024/11/12(火) 03:08:32.43ID:9zdS7CZY
直感的に、短く、そしていちいちボイラープレートを書かんでもいいようにしてくれ
2024/11/12(火) 04:03:57.03ID:15KCzjek
マシンや処理系の仕様に合わせてキーを打つのは人間様のすることではない
2024/11/12(火) 04:10:14.19ID:15KCzjek
x^2 = 2をみたす正の実数xは一意的に存在する
なら、それを√2というシンボルで扱えるようにすべきだ
計算は必要なときにだけすればいい
x = 1.4142云々という数値にしなければ扱えないのは不要な制約

これは誤差があるとかそういう問題ではない
人間の思考をコンピュータの都合に合わせようとしているのが問題
2024/11/12(火) 06:09:24.09ID:NBuxYVaH
こいつの中では問題らしい
2024/11/12(火) 10:46:16.50ID:15KCzjek
>>597
問題だと思わないならすべてのソフトウェアをマシン語直接書けばいいと思うんだけど、そうしないの?
2024/11/12(火) 11:09:37.06ID:NBuxYVaH
ありがちなつまらない問答
どうせなにも解を持ってない
2024/11/12(火) 11:14:02.69ID:u+3emFIN
このガイジ3月からずっと粘着してんの?
きっしょ……
2024/11/12(火) 15:48:13.03ID:3FuqnzdR
>>596
マジレスするとsympyとか使ってxのまま計算して
最後にsolveさせると良いよ
2024/11/12(火) 15:55:48.61ID:CKJ1cusC
>>596
そういう道具をお前が開発すればいい話、有効ならみんな使ってくれる
2024/11/12(火) 16:33:02.20ID:15KCzjek
>>601
それは√2を代数的に扱えるだけで、「数学」ができるようになるわけじゃないよね
2024/11/12(火) 16:34:24.89ID:15KCzjek
>>602
CoqだのAgdaだのLeanだのすでにあるが、プログラミングのタスクに使うには現実的ではないから使われていない
2024/11/12(火) 16:51:01.93ID:CKJ1cusC
>人間の思考をコンピュータの都合に合わせようとしているのが問題
2024/11/12(火) 18:26:13.57ID:CKJ1cusC
どうせコンピュータの仕組み、どう動くか分からん素人のポエムだろ
2024/11/12(火) 18:53:59.94ID:XP7honYa
>>606
コンピュータの仕組みとこの話がどう関係すんの?
2024/11/12(火) 18:55:38.17ID:CKJ1cusC
何処が疑問?
2024/11/12(火) 19:07:20.52ID:XP7honYa
>>608
コンピュータの仕組みとこの話がどう関係するの?(2回目)
2024/11/12(火) 19:33:12.24ID:8/9kiwLF
Isabelle使えばいいだけじゃん?
2024/11/12(火) 21:00:48.76ID:CKJ1cusC
>>609
お前は>>596か?
2024/11/12(火) 22:38:55.70ID:CKJ1cusC
>>604
何に使うんだ、具体的に
2024/11/12(火) 23:06:50.66ID:Z0apa2/f
>>612
自分で考えろ
わかんねーなら口挟むな雑魚
2024/11/12(火) 23:10:47.26ID:/X8f5cV1
>>612
定理証明支援だろ
日本語読めんのか?w
2024/11/12(火) 23:13:38.83ID:CKJ1cusC
>>613,614
死ねよ
2024/11/13(水) 16:19:20.46ID:uVNdAEYi
子どもたちがママや先生に「なんで?どうして?」と質問攻めする
2024/11/14(木) 06:47:55.50ID:FKItOak5
やらないやつは
どんな便利な道具を与えても
どのみちやらない
2024/11/14(木) 09:28:56.87ID:nznif/OW
ここまでやって>>1>>596の問題でさえ、まともな解答を与えられない雑魚ども
2024/11/14(木) 10:42:00.16ID:ner7v2hh
イキルボウフラ
620デフォルトの名無しさん
垢版 |
2024/11/14(木) 12:02:25.41ID:OQvPqcBY
人間が証明する場合だって地道に微積分とか勉強しなきゃいけないんだから、プログラミングでやる場合でも、前提となる命題を地道にライブラリとして実装するしかないんじゃないの?
2024/11/14(木) 13:14:43.41ID:ner7v2hh
人間の証明
622デフォルトの名無しさん
垢版 |
2024/11/14(木) 14:47:37.59ID:a5xmyjQf
strawhat
2024/11/14(木) 17:23:53.38ID:ner7v2hh
麦わら帽子
2024/11/14(木) 21:13:20.72ID:GhvEWAa6
>>63
RubyやPythonは実行も遅くバカ大衆向けの言語
625デフォルトの名無しさん
垢版 |
2024/11/14(木) 21:48:56.39ID:bKv2MHuD
>>617
虐待するような親は
どんな素晴らしい育児本が出ても
どのみち読まない
2024/11/14(木) 23:41:10.47ID:ner7v2hh
DLはパイソンだが
2024/11/15(金) 04:40:11.25ID:ZKTTgycs
虐待するような親は字読めない
628デフォルトの名無しさん
垢版 |
2024/11/15(金) 05:18:13.53ID:hQy47J0s
どの数学を勉強するかにもよるな
弦理論やるならリー群論や多様体解析は必須だ
リーマンの定理やアインシュタインあたりまでは知っとく必要がある
微分解析やテンソル解析は腕のように使えなければならない
シュレーディンガー値も
629デフォルトの名無しさん
垢版 |
2024/11/15(金) 05:23:46.08ID:oiKZah8W
コンピュータは電気で動いている
電気の法則は電磁気学に従う
電磁気学は数学で記述される
したがって、コンピュータで数学をすることは不可能
630デフォルトの名無しさん
垢版 |
2024/11/15(金) 11:17:31.81ID:QdZaIMPx
電子レベルでは不確定性原理が成り立つから、演繹法は成り立たない
631デフォルトの名無しさん
垢版 |
2024/11/15(金) 11:22:24.79ID:0M5G5fCx
数学は純粋関数型言語と同じで副作用がないが、プログラミングは副作用を扱えるので、プログラミングは数学の完全上位互換といえる
2024/11/15(金) 11:59:16.52ID:IzLvGXPH
月間ムーに投稿したら?
633デフォルトの名無しさん
垢版 |
2024/11/15(金) 12:20:53.12ID:vpDW14Vh
数学は数学で記述される
したがって、数学で数学をすることは不可能
634デフォルトの名無しさん
垢版 |
2024/11/15(金) 12:46:46.55ID:kiHQf9hP
>>633
意味不
2024/11/15(金) 13:12:46.73ID:exBTDHgR
ポエム書き始めるぐらいならもう引退したほうがいい
生き恥さらすな
2024/11/15(金) 13:14:55.00ID:TsZPiFZ4
月刊ポエムだろ
2024/11/15(金) 19:08:27.14ID:RQFgsded
>>1>>596への回答はまだなんですか?
2024/11/15(金) 19:57:03.24ID:TsZPiFZ4
煽る
639デフォルトの名無しさん
垢版 |
2024/11/15(金) 20:05:57.50ID:6Uab757C
>>631
プログラミングにも数学にも、それぞれ出来ることと出来ないことがあるので上位互換ではない。
無限に細かいドットが無いからこそ、離散数学でなるべく滑らかに表示できるように考えられているってだけでも、
比可算無限(実数の無限)の再現困難性が理解できると思う。

プログラミング   数学
副作用       稠密(有理数・実数の概念)や連続(実数の概念)
640デフォルトの名無しさん
垢版 |
2024/11/15(金) 20:14:15.24ID:T7KbDv9U
数学にはメモリが無い
641デフォルトの名無しさん
垢版 |
2024/11/16(土) 13:43:48.08ID:xjfyxxxK
>>639
数学にできてプログラミングにできないこととは?
642デフォルトの名無しさん
垢版 |
2024/11/16(土) 14:06:21.38ID:u6jPvE94
lim[x→0](1/x) みたいなのってどうやるんだっけ
643デフォルトの名無しさん
垢版 |
2024/11/16(土) 14:39:31.85ID:VEq7pzr0
>>642
存在しない
644デフォルトの名無しさん
垢版 |
2024/11/16(土) 21:13:01.66ID:ZAMRkSMG
>>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

が正しく真になるかどうかもプログラム次第。
(こちらはグラフアプリの様な専用のものは対応してることが多い)
645デフォルトの名無しさん
垢版 |
2024/11/16(土) 22:29:05.29ID:SVLHeDQd
>>644
またこの周回遅れの間違いかよ
646デフォルトの名無しさん
垢版 |
2024/11/16(土) 22:55:43.53ID:ZAMRkSMG
>>642
ghci> [1/x | x <- [10,9..0]]
[0.1,0.1111111111111111,0.125,0.14285714285714285,0.16666666666666666,0.2,0.25,0.3333333333333333,0.5,1.0,Infinity]
ghci> last [1/x | x <- [10,9..0]]
Infinity
647デフォルトの名無しさん
垢版 |
2024/11/17(日) 18:50:33.62ID:JFtl2tUu
>>644
イプシロン-デルタ論法使えばいいじゃん
648デフォルトの名無しさん
垢版 |
2024/11/17(日) 21:09:34.26ID:vlQbYPk+
>>647
じゃあやってみて。
言語は問わないので。
649デフォルトの名無しさん
垢版 |
2024/11/17(日) 22:24:24.21ID:3R29/MXR
>>648
イミフ
イプシロン-デルタ論法って特定のプログラミング言語の機能だと思ってるの?
650デフォルトの名無しさん
垢版 |
2024/11/17(日) 22:28:22.99ID:36mRXv9m
lim_{k to ∞} sum_{k=1}^{n} 2^(-k) = 2

はい。
651デフォルトの名無しさん
垢版 |
2024/11/17(日) 23:05:53.71ID:vlQbYPk+
>>650
やり直し。
TeXの数式じゃなくて、プログラミング言語のコードで。
使えば良いじゃんって事は、普通のプログラミング言語なら使えるんでしょ?
652デフォルトの名無しさん
垢版 |
2024/11/18(月) 01:35:40.76ID:XvHL8b4e
>>651
何を言ってんだお前は
653デフォルトの名無しさん
垢版 |
2024/11/18(月) 01:57:22.41ID:cmnYUiAb
>>652
>644を数学にしかできない方法として極限を出したらイプシロン-デルタ論法出してきたでしょ?
プログラミングでイプシロン-デルタ論法使えば、数学と同じことができるって主張じゃないの?
654デフォルトの名無しさん
垢版 |
2024/11/18(月) 02:18:05.70ID:cmnYUiAb
というか、私の主張は

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

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

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

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

リストや配列のインデックスが実数や複素数とかプログラミングじゃ出来ない。
655デフォルトの名無しさん
垢版 |
2024/11/18(月) 02:30:07.52ID:Jtd58AQt
lim_{k to ∞} sum_{k=1}^{n} 2^(-k) = 2 をチェックする関数verify()を作って、

```
verify();
```

構文の違いはあれど、だいたいどんなプログラミング言語でもこれで出来るよ。
656デフォルトの名無しさん
垢版 |
2024/11/18(月) 02:31:48.70ID:Jtd58AQt
>>654
なんで数学サイドは極限を扱っているのに、プログラミングサイドは近似値計算してんのが分からない

>プログラミングはイプシロン-デルタ論法が(一定の精度までしか)出来ない。
意味がわからない
イプシロンデルタ論法の「精度」とはなんぞや?
2024/11/18(月) 06:55:13.89ID:rC7K9dh5
用語の定義と問題設定やってから議論はじめろや
2024/11/18(月) 11:53:19.87ID:21+bycFm
数式プロセッサで10秒で解ける話をいつまで引っ張る気?
659デフォルトの名無しさん
垢版 |
2024/11/18(月) 12:11:19.02ID:TSuIDd3o
>>657
概念や問題設定を確立することも含めて研究だ
問題意識に共感できないなら黙ってろ
2024/11/18(月) 12:24:05.47ID:/ED7ccxy
先行研究を調べるという発想もそのやり方もわからないポンコツなの自覚した方がいいぞ
2024/11/18(月) 12:24:33.46ID:JmFxaZ5G
>>659
定義を否定するのはさすがに数学者の姿勢として間違っているかと。

数学なんて定義が違えば結果が変わるんだから、定義すらできないなら議論する以前の状態。
擬似問題だらけになって議論なんてできないわな。
2024/11/18(月) 12:52:07.70ID:IQFlTfLo
ポエム
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況