「数学」をプログラミングするには at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
24/03/16 19:41:45.98 nuwGv9us.net
たとえば、プログラミングで
π/4 = 1 - 1/3 + 1/5 - 1/7 + ...
を近似ではなく厳密に確かめるにはどうしたらいいの
人間が証明できるってことは、有限なアルゴリズムに書き換えられると思うんだけど

2:デフォルトの名無しさん
24/03/16 20:29:40.05 TBzj9DHS.net
>>1
証明を記述するための言語がある。CoqとかAgdaとか
あと単発質問はスレを立てるまでもない質問スレでどうぞ

3:デフォルトの名無しさん
24/03/17 07:03:55.84 SKDLv/jq.net
>>1
アルゴリズムではなくメモリ容量の問題
無限小数を求めるには無限のメモリが必要で世界中のメモリを集めても無限にはならないので不可能なだけ

4:デフォルトの名無しさん
24/03/17 11:29:45.06 lA2zK95Y.net
>>3
数学できなさそう

5:デフォルトの名無しさん
24/03/17 12:41:14.29 JxXcG9lm.net
>>3
この問題解くのに無限小数計算してる奴なんかおらんわ(笑)

6:デフォルトの名無しさん
24/03/17 16:58:12.31 t9G995RY.net
数学をプログラミングする方法は、使用するプログラミング言語によって異なりますが、一般的なアプローチは次の通りです。
適切なプログラミング言語の選択: 数学をプログラミングするためには、数値計算やデータ解析に適した言語を選択することが重要です。Python、Julia、MATLAB、Rなどが一般的に使用されます。
必要なライブラリのインポート: 数学的な計算を効率的に行うためには、各言語には数学関連のライブラリが用意されています。例えば、Pythonの場合、NumPyやSciPyが、Juliaの場合、Baseや特定のパッケージが数学関数を提供します。
数学的なアルゴリズムの実装: 数学的なアルゴリズムをプログラミングする際には、基本的な数学的概念やアルゴリズムの理解が必要です。数式をプログラムに変換することが重要です。
データの操作と可視化: 数学をプログラミングする場合、しばしばデータの操作や可視化が必要になります。そのためには、適切なデータ構造や可視化ツールを使用します。

7:デフォルトの名無しさん
24/03/17 17:46:14.57 zKMEHLV8.net
定理証明支援系はオワコン

8:デフォルトの名無しさん
24/03/17 18:05:28.66 QfhdY2k7.net
ランベルト関数(近似精度がヤヴァくてもヨシ)
をサポートしてる言語のがほしいデス

9:デフォルトの名無しさん
24/03/17 18:39:40.06 zKMEHLV8.net
基礎論以外の命題の証明を証明支援系で一から書くのは現実的ではないから、既存の有名命題がライブラリとして使えるような処理系を使うことになるんだろう

10:デフォルトの名無しさん
24/03/17 19:26:02.03 OVnjvt7h.net
証明支援系で証明を書いても、それを再利用してべつの定理を自動で証明できるわけでもないし、ソフトウェアとして全く無意味だよね……

11:デフォルトの名無しさん
24/03/17 19:48:59.04 HYzzoyFI.net
証明支援系を使うことで未知の証明ができたり、数学の問題がよくわかったりするわけじゃなくて、
すでに証明できてるものを、PかつQを表す型はこうで~ みたいな書き換えをやるだけだからな

12:デフォルトの名無しさん
24/03/17 21:15:14.06 t9G995RY.net
Condensed Mathematics
URLリンク(www.math.ku.dk)

topologyに対するP. Scholzeの試しみ

13:デフォルトの名無しさん
24/03/17 22:11:26.89 BrUemZnE.net
証明支援系が役に立たないなら、そもそも数学で証明を与えることにどういう意味があるのか考えてしまう

14:デフォルトの名無しさん
24/03/17 22:43:10.74 zgd3XX/C.net
厳密だが根拠がない等式を、厳密ではないが根拠のある不等式の集まりにすりかえる

15:デフォルトの名無しさん
24/03/18 08:21:20.80 PIvrnI/y.net
数==数では背理法が使いにくいが
集合==集合は背理法や不等号の価値がまるで渡米したIT創業者みたいになる

16:デフォルトの名無しさん
24/03/18 08:43:53.53 pTevW9jL.net
イミフ

17:デフォルトの名無しさん
24/03/18 09:53:36.41 dVjvry4m.net
読まなくても分かることをほぼ知り尽くしてから読めば楽に読める
例えば書いた者に悪意があるのかないのかを事前に知らないより知っている方が楽
正義とか悪とかが苦手な人にはこれができない

18:デフォルトの名無しさん
24/03/18 10:14:54.25 HmpJvDlJ.net
∫_0^1 dx/(1 + x^2) = Arctan(1) - Arctan(0) = π/4
x = arctan(y)
x' = 1/y'
= cos(x)^2
= cos(x)^2/(cos(x)^2 + sin(x)^2)
= 1/(1 + tan(x)^2)
= 1/(1 + y^2)
微分とtanの特殊値がライブラリによって既知なら、書き下せそう
ただ、書いたところでだからなんだって話だが

19:デフォルトの名無しさん
24/03/18 10:16:03.73 pTevW9jL.net
おっさんのポエム

20:デフォルトの名無しさん
24/03/18 10:19:41.06 HmpJvDlJ.net
あとArctanのテイラー展開
もしくは項別積分
項別積分する場合は、べき級数の収束半径とか、境界での連続性とかも

21:デフォルトの名無しさん
24/03/18 11:21:23.44 dVjvry4m.net
積分変数を別名に変えても積分の結果が変わらないこと
などを証明することに興味無さすぎて
変数を使わない技術だけが発達しているんじゃないか

22:デフォルトの名無しさん
24/03/18 17:26:37.63 pTevW9jL.net
道師様のお言葉
URLリンク(terrytao.files.wordpress.com)

23:デフォルトの名無しさん
24/03/18 20:14:54.78 nsefbItQ.net
>>4
そしてあんたはプログラムができない
永久にすれ違いだなw
>>5
実際に計算しない限りプログラムの世界では完成したとは言えない
できたような気になってるだけだw

24:デフォルトの名無しさん
24/03/18 20:38:29.54 8wq33qzx.net
>>23
ふつうに証明支援系で証明できるが

25:デフォルトの名無しさん
24/03/18 20:59:25.05 zv8Td5xB.net
変数に別の変数 (を含む式) を代入するのは嫌なので、右辺を実際に計算してしまった値を代入する
計算してない式を代入するのが何故そんなに嫌なのかを理解しない限り話が進まない

26:デフォルトの名無しさん
24/03/18 21:35:55.83 fpvRWfHG.net
コード書けない奴が必死に妄想でレスバするクソスレ
NG決定

27:デフォルトの名無しさん
24/03/18 23:20:36.59 zv8Td5xB.net
しかし、何も書かないより悪いコードを書く方がマシみたいな保証が
あると思うならそれこそ妄想なのでは

28:デフォルトの名無しさん
24/03/19 04:11:20.65 YAmi9Hnz.net
数学を記述するには一階述語論理があれば十分
しかし処理系側は特殊なケースに特化するよりも自然に実装できる範囲で一般化したほうがいいだろう
命題の記述は依存型による

29:デフォルトの名無しさん
24/03/19 12:34:54.32 pUZ6M7m/.net
動的型付けの証明支援系ってのは何をしてるんだ?

30:デフォルトの名無しさん
24/03/19 14:33:42.20 NSxYSp14.net
○○を支援する言語と○○が可能な言語を分断するパラダイムはたしかにオワコンだ
逆に支援を語りえない所謂unsafeを書けるやつが比較的新しい

31:デフォルトの名無しさん
24/03/19 15:02:06.03 YRVQB5Qs.net
>2 の紹介しているCoqとか、純粋関数型言語HaskellもPCで動く数学って感じではあるけども、そもそもメモリが有限なので連続を表現できない。
どんなに小さい数を表現できても有限である以上は離散的なのよねん。
離散数学の範囲ならHaskell良いよ。
子供向けだけど、Viscuit(ビスケット)は写像というか変換のみで言語作ってる。
(ビスケットの中の人曰く「書き換え型言語」)

32:デフォルトの名無しさん
24/03/19 15:24:32.49 3KaIc7lk.net
>>31
ポエムは日記に書いてろ

33:デフォルトの名無しさん
24/03/19 16:20:03.06 Q+qUW8xc.net
leanとかいうソフトで学部レベルの定理の証明をすべて書くとかいうプロジェクトがあるそうですが、そういう証明を見ると勉強する側として勉強になりますか?

34:デフォルトの名無しさん
24/03/19 16:58:20.60 WY0TXEXb.net
>>33
勉強にはなるんじゃない?

35:デフォルトの名無しさん
24/03/19 16:59:03.63 WY0TXEXb.net
ほんとうに教科書に載ってる定理の証明がぜんぶ正しく書かれてるなら、それは教科書読んでるのと同じわけだし

36:デフォルトの名無しさん
24/03/19 17:00:04.15 WY0TXEXb.net
lean4はプログラミング言語としても、haskellやrustくらいパワフルな言語なので、cだのfortranだの勉強するよりプログラミングの勉強にもなる

37:デフォルトの名無しさん
24/03/19 17:06:08.09 50xBt2sS.net
>>29
推論規則にしたがって項を削除したり、条件をみたす要素を深さ優先探索したり

38:デフォルトの名無しさん
24/03/19 17:54:01.83 /7JjNXd8.net
証明支援系っつっても、ふつうにプログラム書くのと同じで、特定の問題の解法をプログラムしてるだけ
ようは論理のピタゴラスイッチ作ってるだけ
べつに未知の証明を自動で発見してくれるわけではない(もちろん、問題によっては自動的に解決できる場合もあるが)

39:デフォルトの名無しさん
24/03/19 17:56:38.86 P1OcOpxu.net
証明支援系Lean4
数式処理システムSage
組版システムLaTeX

を組み合わせたオープンソースの統合数学環境と、黒板の文字や図を認識する入力インタフェースがあればいいと思う

40:デフォルトの名無しさん
24/03/19 18:04:10.23 qttME5ET.net
>>36
「プログラミングの勉強」を「プログラム言語」の勉強だと思ってるバカ
「program」の意味を調べてみろ。言語はただの手法の一つ

41:デフォルトの名無しさん
24/03/19 18:56:00.18 5dhARo0o.net
バカが必死で草

42:デフォルトの名無しさん
24/03/19 19:15:14.75 IwEkPQSo.net
この馬鹿は何がしたいんだろ……

43:デフォルトの名無しさん
24/03/20 10:18:59.26 ea1o2Ub5.net
>>36
CやFortranの評価が低いということはHaskellの中でモナドの評価が低いよね
それはもったいないから言語を競争させる原理はよくない

44:デフォルトの名無しさん
24/03/20 12:54:23.96 VbUXRLzi.net
>>43
ポエムはよそで書いてろ

45:デフォルトの名無しさん
24/03/20 13:10:38.35 ea1o2Ub5.net
ミサイルでも撃たれたならともかく
ポエムなるものを書き込まれたことへの反応が過剰なのが気になる
現実世界にポエムが存在しなくなれば消去法で「数学」になるってことなのかな

46:デフォルトの名無しさん
24/03/20 14:27:47.20 I+zqr01r.net
スレタイが悪い
専門用語や英語を入れておかないと、自分も話題に参加できると勘違いした馬鹿が書き込む

47:デフォルトの名無しさん
24/03/20 15:26:54.49 4PdbE3xv.net
仲よき事は美しき哉 志賀直哉

48:デフォルトの名無しさん
24/03/20 15:27:56.00 4PdbE3xv.net
>>22
これに反応できないお前ら

49:デフォルトの名無しさん
24/03/20 15:50:55.08 vNXgKg89.net
>>47 武者小路実篤じゃなかったっけ

50:デフォルトの名無しさん
24/03/20 16:42:40.04 ZN9vgvDp.net
>>33
すでに解けてる問題を特定の処理系の言語に書き直すのが一大プロジェクトというのがくだらないと思う

51:デフォルトの名無しさん
24/03/20 16:54:28.92 4PdbE3xv.net
>>12
これにも反応できない雑魚ども

52:デフォルトの名無しさん
24/03/20 17:51:55.09 ea1o2Ub5.net
>>50
すでに常識になっていることを「先入観にとらわれている」と思う人はいる
先入観をリセットしてやり直したい需要は多少はある

53:デフォルトの名無しさん
24/03/20 18:02:21.59 Snv2Tioi.net
ポエム連発は草

54:デフォルトの名無しさん
24/03/20 21:22:26.43 qwgU2fnR.net
>>52
馬鹿すぎて話にならない
わざとやってるならむしろお笑い番組の脚本とか考えるセンスあると思うよ

55:デフォルトの名無しさん
24/03/20 23:28:22.46 ea1o2Ub5.net
わざと馬鹿になったのではないが
数学の範囲内の定理を厳密に証明しても、内か外かの判断は厳密にならないので
「プログラミングならなんでも数学」のような馬鹿な意見も厳密に全否定できないんだよな

56:デフォルトの名無しさん
24/03/22 15:38:04.26 m8Pakijg.net
現代数学は集合と写像の言葉で書かれている
写像は関数の一般化だからC言語やHaskellなどの関数型言語では数学をプログラミングできない
RubyやPythonなどにはsetやmapといった機能があるから
これで数学をプログラミングできると思われる

57:デフォルトの名無しさん
24/03/22 15:41:43.35 BpbPyhcF.net
厨二の夢だったのさ

58:デフォルトの名無しさん
24/03/22 22:21:33.16 LL1SYasV.net
>>56
それは違う
数学ができるプログラミング言語のコンパイラをCで書くことができる
そもそもすべてのプログラム言語はチューリング完全だからCで書けてハスケルに書けないなどということは無い

59:デフォルトの名無しさん
24/03/22 22:53:17.07 BpbPyhcF.net
所詮プログラムは人が書くもの

60:デフォルトの名無しさん
24/03/22 23:30:06.22 CJ8mvd1G.net
>>56
それ逆だね
mapは関数型言語で登場した
そのRubyやPythonといったスクリプト言語は後からそれを導入した

61:デフォルトの名無しさん
24/03/22 23:57:05.24 LL1SYasV.net
はあ??
マップは車窓だろ!!

62:デフォルトの名無しさん
24/03/23 00:02:01.40 0VbIgFfj.net
マップは関数の集合直積に過ぎない
c言語でも有限アルゴリズムで数学プログラミングが出来る
パイソンは構文をパースできるがスクリプト言語ゆえ数学プログラミングは無理

63:デフォルトの名無しさん
24/03/23 00:32:34.16 0VbIgFfj.net
>>60
跡から登場したってことはRubyやPythonのほうが優れているってことやろが

64:デフォルトの名無しさん
24/03/23 01:14:32.77 O64Y227M.net
まともなプログラマーがスクリプト言語でプログラミング開発することはない
スクリプト言語はスクリプトを書く程度のことをするだけのおもちゃ

65:デフォルトの名無しさん
24/03/23 04:20:19.88 rvJB/m9a.net
CやPYTONはスクリプト言語だから単純なことしかできない

66:デフォルトの名無しさん
24/03/23 04:41:11.89 IdPmAPnB.net
スレタイ
集合と写像が数学の基本らしい
写像というのは関数の一般化だからCは関数言語だから数学できないということになる
Javaのmainは写像だからJavaは数学できる。Rubyにも写像ある

67:デフォルトの名無しさん
24/03/23 07:48:29.25 LhcvAfdM.net
数学に副作用はないがモナドは副作用があるのでハスケルでは数学はできない

68:デフォルトの名無しさん
24/03/23 12:22:12.37 g/HfMmmn.net
>>56
Cでは関数の引数として関数ポインタを渡せるから、map関数を簡単に自作できる。

69:デフォルトの名無しさん
24/03/23 12:23:33.26 TQ7fzTlo.net
空論、絵に描いた餅、機械語にだってできるだろwww

70:デフォルトの名無しさん
24/03/23 12:47:39.65 g/HfMmmn.net
>>69
機械語に識別子はないからできないだろ。Cでは長さnの配列aの各要素に関数fを適用した結果を
配列bに格納する関数 map(f, a, n, b) を簡単に自作できる。

71:デフォルトの名無しさん
24/03/23 13:55:22.78 TQ7fzTlo.net
C言語は機械語にアセンブルされて実行されるんだよ

72:デフォルトの名無しさん
24/03/23 14:11:05.89 O64Y227M.net
>>70
普通mapは配列に対してではなく
もっと一般的にイテレータに対して適用
結果もイテレータとする
その結果を例えばfor文で使う場合
わざわざ結果を配列に入れても無意味だったことになるからだ
mapを多段にした使った場合も同様で中間結果配列は無意味になる
だからmapの入力も出力もイテレータが使われる

73:デフォルトの名無しさん
24/03/23 14:44:44.84 g/HfMmmn.net
>>72
それは実装上の効率化のための操作で、本当の写像ではない。本当の写像は配列から配列を作る。
C#で言えばSelectしただけでは写像にならず、ToArrayしないと写像にならない。

74:デフォルトの名無しさん
24/03/23 15:36:22.16 O64Y227M.net
>>73
配列から配列なんて嘘つきだな
例えば写像の入力を数学でもよくある自然数とする
これは配列では表現できない
イテレータならば表現できる
出力も同様で配列は不可能だがイテレータなら可能

75:デフォルトの名無しさん
24/03/23 16:14:29.71 TQ7fzTlo.net
そもそもそんなレベルの話をしてるんではないが

76:デフォルトの名無しさん
24/03/23 16:43:39.42 g/HfMmmn.net
>>74
自然数は要素数が無限大の配列だが、コンピュータではメモリが有限なので表現できないだけ。
イタレータによる遅延評価は問題を先送りしただけで、本当の写像である配列を作ろうとすると
メモリが途中で尽きて作れない。

77:デフォルトの名無しさん
24/03/23 17:05:10.16 O64Y227M.net
>>76
配列なんていう間違った考えをするからそのように失敗する
正しくイテレータと捉えれば自然数もそこからの写像も扱える

78:デフォルトの名無しさん
24/03/23 17:30:00.10 g/HfMmmn.net
>>77
イタレータは配列の各要素を走査しながら操作する道具、つまり写像を逐次的に作っていくための操作手順を表したものに過ぎない。

79:デフォルトの名無しさん
24/03/23 18:46:13.42 O64Y227M.net
>>78
イテレータとは何かを学び直しなさい
それは配列に対するイテレータ
イテレータに配列なんていうものは必要ない

80:デフォルトの名無しさん
24/03/23 19:02:25.28 /RLS51iM.net
イテレータなんぞプログラミング側の都合でしかないやろw
数学のどこにイテレーションって概念があるの?
もとは集合の話だっけ? 集合のどこにイテレータ出てくる?

81:デフォルトの名無しさん
24/03/23 19:08:33.11 HOjMmtFw.net
配列こそプログラミングやコンピュータ都合の邪道なものだね
配列は有限しか扱えないから不要

イテレータは自然数イテレータだけでなく例えばフィボナッチイテレータなど無限を扱える
イテレータは数学とも相性がいい

82:デフォルトの名無しさん
24/03/23 20:19:21.71 g/HfMmmn.net
>>78 >>81
イタレータの意味を分かっているのか。反復子だぞ。反復子が写像のわけないだろ。
写像を実行するための操作手順でしかない。

反復子の遅延評価により無限の操作手順をコードとして書くことはできても、実際には
実行が途中で終わるので無限を扱えるわけではなく、有限を無限に見せている構文上の
まやかしに過ぎない。

83:デフォルトの名無しさん
24/03/23 21:27:18.93 u0/iUo5p.net
>>82
あんさんボケとるな
ここまで読んで反復子(iterator)が写像(map)と書いているのは君しかいない
他の人たちは以下を正しく理解して書込みしている

>>72
>> だからmapの入力も出力もイテレータが使われる

84:デフォルトの名無しさん
24/03/23 22:23:29.86 g/HfMmmn.net
>>83
>>74はごっちゃにしているようだが。
反復子を使っても遅延評価をしなければ、mapを多段に使った場合の効率は良くならない。
例えば、C++ STLのtransformがそう。
>>70のような配列のmap関数でも、引数fとして複数の関数の合成関数のポインタを渡せば、
効率は良くなる。あるいは、引数fとして関数ポインタの配列を受け入れるようなmap関数を
書いても良い。

85:デフォルトの名無しさん
24/03/23 22:27:51.62 g/HfMmmn.net
>>83
>>74はごっちゃにしているようだが。
反復子を使っても遅延評価をしなければ、mapを多段に使った場合の効率は良くならない。
例えば、C++ STLのtransformがそう。
>>70のような配列のmap関数でも、引数fとして複数の関数の合成関数のポインタを渡せば、
効率は良くなる。あるいは、引数fとして関数ポインタの配列を受け入れるようなmap関数を
書いても良い。
そもそもCでmap関数を書けるかという話だから、書けるという回答で何の問題ないだろ。

86:デフォルトの名無しさん
24/03/23 22:32:25.46 /PCiT6cf.net
>>84
根本的な勘違いをしているようなのでアドバイス
イテレータは抽象的な概念に過ぎないのでそこに遅延評価などという話は一切出てこない
イテレータの実装の一つに遅延評価の有無を持ち出すケースがあるようだがそんな特殊などうでもいい話をしても意味がない

87:デフォルトの名無しさん
24/03/23 22:36:40.17 g/HfMmmn.net
>>86
そんなことは分かっている。>>72に言ってくれ。

88:デフォルトの名無しさん
24/03/23 22:43:57.14 /PCiT6cf.net
>>72は正しいよ

89:デフォルトの名無しさん
24/03/23 22:56:10.99 sCrZk0I5.net
iteratorは可算無限を扱える
mapは入力も出力もiterator
例えば
2倍にするというmapに対して
入力を自然数のiteratorとすると
出力は偶数の自然数のiteratorとなる
これだけの話だろ
>>82の人だけ理解できてないようだが

90:デフォルトの名無しさん
24/03/24 10:28:13.06 8D2Drt3S.net
でもC言語は圏論じゃないよね

91:デフォルトの名無しさん
24/03/24 10:35:26.13 GMGvnUD/.net
20年前の議論草

92:デフォルトの名無しさん
24/03/24 11:18:58.82 dsXIuIWc.net
それは間違い
FORTRANが今もなお科学技術計算に使われてる

93:デフォルトの名無しさん
24/03/24 11:32:06.58 GMGvnUD/.net
言葉のお遊びwww

94:デフォルトの名無しさん
24/03/24 11:34:31.12 yjeBPx06.net
集合論はラッセルのパラドックスで矛盾した
だから集合と写像に基づくC言語やRubyは数学を扱うのに不適切
よってハスケルなどは圏論に基づくから関数型言語が正解

95:デフォルトの名無しさん
24/03/24 11:46:51.50 BUlt442E.net
プログラム言語は機械語→アセンブラ→高級言語 と進化してきたが、高級言語にも高級度の段階があって
gotoジャンプ→構造化ループ→map→ベクトル演算 という序列になっている。
y = x.map(i => 2 * i) のように冗長な記述をしなければならない言語よりは、ベクトル演算で y = 2 * x と
すっきり書けるFortranの方が進化している。

96:デフォルトの名無しさん
24/03/24 14:10:14.72 S5dROhf0.net
まったくトンチンカンな話してんな
プログラミング言語にmapがあったところでそれで数学ができるわけじゃないだろ
何を解きたいんだよ?
定理証明か?仕様記述か?
ド文系のふわっとした思考やめな

97:デフォルトの名無しさん
24/03/24 14:30:14.37 rmOZT0bw.net
>>95
それはarrayを入出力とするmapだね
それは遅延評価もできず可算無限列を扱えない古い劣化タイプ
一方でiteratorを入出力とするmapはarrayだけでなく可算無限列など任意のものを対象にできる

98:デフォルトの名無しさん
24/03/24 14:58:03.83 iK6Wk5rB.net
この完全なデタラメな話をここまで長々とする気力がどこから湧いてくるのかがわからない

99:デフォルトの名無しさん
24/03/24 15:27:25.02 pjttU2nz.net
所有権を複製したいんやろw

100:デフォルトの名無しさん
24/03/24 15:28:49.95 4Iqs5Xee.net
>>97
昔は配列に対するmapしか無かったから、遅延評価できず、有限列しか扱えず、中間生成配列のムダなど、悲惨だったな
今はイテレータに対してmapその他を適用するプログラミング言語が増えたので、扱える対象が広がるとともに、効率も良くなったな

101:デフォルトの名無しさん
24/03/24 16:53:04.14 GMGvnUD/.net
そんな低レベルの話してるんとちゃうんやで

102:デフォルトの名無しさん
24/03/24 18:55:43.95 qF9URZLj.net
そもそも高階関数のmapは、数学の集合論における写像のことではない

103:デフォルトの名無しさん
24/03/24 19:36:33.57 WsANI0D/.net
ゴミみたいな話しかしてないな、定理証明系とかの話をしているのかと思ったら

104:デフォルトの名無しさん
24/03/24 20:58:49.18 BUlt442E.net
>>97 >> 100
Ruby厨、Haskell厨が他の言語を貶めるのに必死だなw

Fortranのプログラム

 program test
   integer :: x(3), y(3)
   x = (/1, 2, 3/)
   y = 2 * x + 1
   print "(i0)", y
 end program

の y = 2 * x + 1 の行で中間配列が作成されて、

   integer :: temp(3)
   temp = 2 * x
   y = temp + 1

のような非効率な動作になるとでも思ってるのか? STLで提供しているC++のvalarrayと違って、
Fortranはベクトル演算に言語仕様レベルで対応しているから、そんなことするはずないだろ。

105:デフォルトの名無しさん
24/03/24 20:59:19.43 BUlt442E.net
Visual Stduioで y = 2 * x + 1 の行の逆アセンブリを見てみると、

 mov  qword ptr [rbp + 68h], 1
 mov  rax, qword ptr [rbp + 68h]
 cmp  rax, 3
 jg  TEST + 105h
 mov  rax, qword ptr [rbp + 68h]
 imul rax, rax, 4
 lea  rdx, [X]
 add  rdx, rax
 add  rdx, 0FFFFFFFFFFFFFFFCh
 mov  eax, dword ptr [rdx]
 imul eax, eax, 2
 inc  eax
 mov  rdx, qword ptr [rbp + 68h]
 imul rdx, rdx, 4
 lea  rcx, [Y]
 add  rcx, rdx
 add  rcx, 0FFFFFFFFFFFFFFFCh
 mov  dword ptr [rcx], eax
 mov  eax, 1
 add  rax, qword ptr [rbp + 68h]
 mov  qword ptr [rbp + 68h], rax
 jmp  TEST + 0B7h

というコードが生成されていて、中間配列なんて作成せず合成関数を1回だけ適用し、Cの

 for (i = 1; i <= 3; i++) y[i] = 2 * x[i] + 3;

に相当する効率的な処理になっている。(add rdx, 0FFFFFFFFFFFFFFFCh を見ると、
配列の添字が1始まりなのは非効率なのかと思ってしまうが…)

106:デフォルトの名無しさん
24/03/24 20:59:35.15 BUlt442E.net
インタプリタのRubyや、配列っぽく見える[1, 2, 3]がリンクリストのHaskellが効率を
云々するのは馬鹿げているな。

107:デフォルトの名無しさん
24/03/24 21:02:48.75 BUlt442E.net
>>105の訂正
(誤) for (i = 1; i <= 3; i++) y[i] = 2 * x[i] + 3;
(正) for (i = 1; i <= 3; i++) y[i] = 2 * x[i] + 1;

108:デフォルトの名無しさん
24/03/24 22:52:27.30 IPqW9Eum.net
>>104
固定長の配列を入力に使っている時点で失格
このスレは>>1の例のように対象は可算無限列

109:デフォルトの名無しさん
24/03/24 23:00:28.05 D7nIPk2H.net
静的な固定長で最適化できるのは当たり前だから
少なくとも実行時までわからない可変長じゃないとな

110:デフォルトの名無しさん
24/03/24 23:11:46.55 BUlt442E.net
>>108
無限なんて実行不可能なものを構文として書けても、コメントとして書けるのと同じようなもので無意味。
>>109
何を頓珍漢なことを言ってるんだよ。
for (i = 1; i <= 3; i++) y[i] = 2 * x[i] + 1; が
for (i = 1; i <= n; i++) y[i] = 2 * x[i] + 1; に変わるだけだぞ。

111:デフォルトの名無しさん
24/03/24 23:42:53.58 +hE4ud6c.net
入力対象は>>1の数列でいいんじゃね
1
1 - 1/3
1 - 1/3 + 1/5
1 - 1/3 + 1/5 - 1/7
1 - 1/3 + 1/5 - 1/7 + ...
もちろん何番目まで必要かは不明
この数列を他と切り離して記述できるかどうか

112:デフォルトの名無しさん
24/03/25 06:31:11.05 20JdvYau.net
写像型言語は無いから無理やろ

113:デフォルトの名無しさん
24/03/25 08:05:29.65 S04445Yl.net
しょうもない算法や文法を力説されても
数理論理を知らん高卒なんやろか

114:デフォルトの名無しさん
24/03/25 09:05:37.14 KQK4URb5.net
集合論はラッセルのパラドックスがあるからまちがい
選択公理もバナッハタルスキーのパラドックスがあるからまちがい
圏論こそ数学の基礎

115:デフォルトの名無しさん
24/03/25 09:20:11.31 yJIwIJvC.net
そういう何が一番とか中二思考やめようや

116:デフォルトの名無しさん
24/03/25 09:20:53.71 VkynB6Jg.net
アホ参上

117:デフォルトの名無しさん
24/03/25 10:25:12.12 VsfGDznC.net
圏論型プログラミングってないの?

118:デフォルトの名無しさん
24/03/25 18:22:08.56 OU4hWxvG.net
集合は悪くないがそれを内包表記で定義するのが悪い
イテレータを内包表記っぽく書けるやつは
内包表記を使わない書き方もできる保証があるから良いけど

119:デフォルトの名無しさん
24/03/25 19:35:21.63 Yjyc3ZYI.net
Pythonには内包表記はあっても外延表記はないから集合論はできないよ

120:デフォルトの名無しさん
24/03/25 20:38:21.53 0jQlcuCQ.net
>>104はVisual Studioでは最適化オプションがなぜか無視されてしまうが、コマンドライン
コンパイラではまさに>>109が言う要素数が固定かつ全要素がコンパイル時に計算可能という
特殊な場合に応じた最適化が施され、コンパイル時の計算結果を配列yに書き込むだけで
y = 2 * x を全く計算しないコードが生成されることが、アセンブリ出力から分かる。
IFORT (旧式Intel Fortran) では
 mov eax, 3
 (中略)
 mov DWORD PTR [TEST$X.0.1], 1
 mov DWORD PTR [TEST$X.0.1 + 4], 2
 mov DWORD PTR [TEST$X.0.1 + 8], eax
 mov DWORD PTR [TEST$Y.0.1], eax
 mov DWORD PTR [TEST$Y.0.1 + 4], 5
 mov DWORD PTR [TEST$Y.0.1 + 8], 7
というコードが生成され、Cの
 int t = 3;
 *x = 1; *(int *)((char *)x + 4) = 2; *(int *)((char *)x + 8) = t;
 *y = t; *(int *)((char *)y + 4) = 5; *(int *)((char *)x + 8) = 7;
に相当する処理になる (CではC流に添字0〜2を使うとして)。xとyに共通する
要素3はレジスタに入れて使い回される。一度も使われない変数xを除去する
最適化はされない。

121:デフォルトの名無しさん
24/03/25 20:38:45.78 0jQlcuCQ.net
IFX (新式Intel Fortran) では
 movabsq $21474836483, %rax
 movq  %rax, TEST$Y(%rip)
 leaq  TEST$Y(%rip), %rax
 movl  $7, TEST$Y+8(%rip)
というコードが生成され (IntelのコンパイラなのAT&T記法で読みにくいが)、Cの
 *(long long *)y = 0x500000003;
 *(int *)((char *)y + 8) = 7;
に相当する処理 (リトルエンディアン環境で) になり、3と5がyに一度に書き込まれる。
いずれにしても、Ruby厨、Haskell厨の浅知恵でFortranに嚙み付いても滑稽なだけwww

122:デフォルトの名無しさん
24/03/25 20:46:39.58 trqJ9Q6W.net
rustのほうがスゲーからfortranは黙っとれ

123:デフォルトの名無しさん
24/03/25 21:08:10.53 VkynB6Jg.net
誰にも相手してもらえないのでフォートランがイキル

124:デフォルトの名無しさん
24/03/25 21:21:08.93 VkynB6Jg.net
フォートランは行列、有限要素法のライブラリィ呼ぶだけ、独自のコードなんか書かないw

125:デフォルトの名無しさん
24/03/25 21:23:38.32 DOdK3gDR.net
数学をプログラミングするには、プログラマが数学の必要があるのでは?

126:デフォルトの名無しさん
24/03/25 21:32:48.72 VkynB6Jg.net
プログラマは数学である必要がある

127:デフォルトの名無しさん
24/03/25 22:22:52.88 OU4hWxvG.net
ギャンブルなら敗者が金を振り込めば秩序が戻るのだが
金を振り込んでしまう人がここにはいないので

128:デフォルトの名無しさん
24/03/25 23:24:59.56 77HfiJgP.net
>>117
圏論型と言えるか分らんが、圏論が注目されたのは副作用の問題を圏論のモナドで表現できるということでHaskellに採用されたのがきっかけっぽい。
今は非可換確率論を圏論で表現すれば意識がどうやって生まれるのかの研究に使えるって話がある。
意識が生まれる謎が解ければAIに意識を持たせられる。

129:デフォルトの名無しさん
24/03/26 02:09:58.19 bsMEvYma.net
意識は数学かwww

130:デフォルトの名無しさん
24/03/26 11:17:19.23 ZLsRjAqD.net
計算機だからなぁ

131:デフォルトの名無しさん
24/03/26 15:57:26.17 bsMEvYma.net
戻らないだろ、刑務所行き
>ギャンブルなら敗者が金を振り込めば秩序が戻るのだが

132:デフォルトの名無しさん
24/03/26 17:42:12.34 0A2fpKMf.net
>>126 日本語おかしい

133:デフォルトの名無しさん
24/03/26 17:56:53.22 bsMEvYma.net
>>132
125に言え

134:デフォルトの名無しさん
24/03/27 18:25:48.23 sRZ89+IF.net
コンプライアンス的には絶対に違反しないブレないスタイルの方が楽だな
中庸とかいうのは数学的にも意味のない言葉
の筈だけど

135:デフォルトの名無しさん
24/03/27 20:27:56.36 NpBSIV2x.net
>>126
ガイジか?
プログラマ→職業
数学→学問分野
日本語勉強し直すか死ねよ

136:デフォルトの名無しさん
24/03/27 21:11:20.21 xckWJWeo.net
きっちりした仕様決め無しで「プログラミング」できるわけないだろうに
なんで過疎ってる5chのさらに過疎板でこんな板違いスレ何度も書き込むやつがいるんだよ
「プログラムを作る人」じゃないよな

137:デフォルトの名無しさん
24/03/27 21:40:20.83 ucDYKmHx.net
>>135
125へ言えよ、キチガイ

138:デフォルトの名無しさん
24/03/27 21:56:27.68 sRZ89+IF.net
ラッセルは作る人というより脆弱性を発見する人のように見える

139:デフォルトの名無しさん
24/03/27 22:02:37.43 Fy0R0co2.net
頭の悪さがポエム書かせるんやろなこれ

140:デフォルトの名無しさん
24/03/28 06:44:57.06 RNwVIlzh.net
>>137

ガイジか?

141:デフォルトの名無しさん
24/03/28 08:12:08.80 WD+w6k7S.net
意識は非可換だってどこかで聞いたな
現代数学は可換理論しか扱えないが、量子力学は非可換だから、意識=量子力学ってことになる
意識が非決定論なのは量子力学では状態が重ね合わせであることに起因する
したがって意識の問題を解決するには量子コンピュータが必須となる

142:デフォルトの名無しさん
24/03/28 10:32:09.67 vnZC0FK8.net
>>140
キチガイ

143:デフォルトの名無しさん
24/03/28 10:42:18.73 7o0NRrCR.net
借金取りは見かけ上は極めて非決定的にふるまうが
それでも純粋に合理的な行動しかしない存在とされているので意識の問題がない

144:デフォルトの名無しさん
24/03/28 11:41:03.24 /R48rPWi.net
>>141
月刊ムーおすすめ

145:デフォルトの名無しさん
24/03/28 11:51:30.64 vnZC0FK8.net
>>141
意識はサイコロを振らない

146:デフォルトの名無しさん
24/03/28 19:38:54.13 IFE49MQl.net
>>126
小学校からやり直せ

147:デフォルトの名無しさん
24/03/28 20:47:12.01 vnZC0FK8.net
>>146
アスペ

148:デフォルトの名無しさん
24/03/28 20:52:41.71 8WuDpFG2.net
ポエマーさんはポエム板にでも行けよ
統失なら病院のほうがいいかな

149:デフォルトの名無しさん
24/03/29 07:29:41.84 Gq7mALgF.net
ゲーデルの不完全性定理で完全に否定されているだろ
プログラムは不完全性では動かせない

150:デフォルトの名無しさん
24/03/29 07:35:35.46 wkwvmDXj.net
>>149
月刊ムーおすすめ

151:デフォルトの名無しさん
24/03/29 10:11:08.83 vNZyJemM.net
不完全ではなく無定義語で挫折する人がいる
無定義語の定義を特定できないと命題を肯定も否定もできない説
日常生活で出てくる

152:デフォルトの名無しさん
24/03/29 14:56:43.34 hQjfrr6D.net
>>149
ガイジか?
ゲーデルの不完全性定理はそんなことについて言及してないぞ

153:デフォルトの名無しさん
24/03/31 01:25:08.99 GMj391lI.net
数列の概念がない奴でも無限級数の意味は分かるんだよね
ハードルが低いせいで基礎知識の共有が難しい

154:デフォルトの名無しさん
24/03/31 02:04:57.22 XOErjovU.net
無限級数はトンデモ
物理に現れるのは二次級数まで

155:デフォルトの名無しさん
24/03/31 06:02:59.68 954vZkOe.net

数学が何がわかってないやつの典型
虚数もあるとかないとか騒いでるタイプ

156:デフォルトの名無しさん
24/03/31 11:13:53.85 /9ZsX08L.net
ほほう
君は、数学が何かわかっているのかネ?

157:デフォルトの名無しさん
24/03/31 11:29:58.51 GMj391lI.net
言語に依存しない数学的オブジェクトの存在が保証されれば
表現を(統一するために)訂正させる仕組みを正当化しやすくなる

158:デフォルトの名無しさん
24/03/31 11:41:19.45 dM7Inut1.net
意味不明な事を口走るおっさん

159:デフォルトの名無しさん
24/03/31 12:44:19.68 va6HO9e1.net
「プログラム技術」板で「数学」がどうのこうの語ってるのがもう頭悪いというか頭おかしい
プログラムも数学もできない、掲示板の使い分けもできない知的障害

160:デフォルトの名無しさん
24/03/31 15:25:06.37 wx8Fg1tF.net
>>154
数学と物理はなんの関係もないぞ
数学ってZF(C)公理系を絶対ルールとするパズルゲームでしかないから

161:デフォルトの名無しさん
24/03/31 16:25:54.15 GMj391lI.net
絶対にルール追加しないのは
ルール追加のふりをしてバックドア設置されるリスクを回避してるんだろう

162:デフォルトの名無しさん
24/03/31 16:55:10.67 dM7Inut1.net
馬鹿参上
>数学ってZF(C)公理系を絶対ルールとするパズルゲームでしかないから

163:デフォルトの名無しさん
24/03/31 17:15:24.42 wup1S0Wx.net
物理に三次以上の級数が出てくるソースはよ

164:デフォルトの名無しさん
24/03/31 17:23:31.92 dM7Inut1.net
コンピュータは0と1だけで遊ぶゲームwww

165:デフォルトの名無しさん
24/03/31 17:28:42.81 954vZkOe.net
まじこのスレやべーなw
キチガイ率高い

166:デフォルトの名無しさん
24/03/31 17:38:37.31 dM7Inut1.net
意味不明www
>物理に現れるのは二次級数まで

167:デフォルトの名無しさん
24/03/31 18:06:40.04 954vZkOe.net
ただし>>160 は支持するぞ
公理系を何にするかは議論があるだろうが推論パズルゲームってところは正しい

168:デフォルトの名無しさん
24/03/31 18:08:00.44 kVwrIFTx.net
プログラム組めない雑魚ほどなにか深遠そうな理論めいたものを言おうとするよな
大したこと言えないんだから黙ってればいいのに

169:デフォルトの名無しさん
24/03/31 18:44:49.29 ToTjh3N9.net
>>168
自分の学が無いのを他責にするなよ

170:デフォルトの名無しさん
24/03/31 20:45:23.72 bt2k8y8v.net
学があったらポエム書かんやろw
アホ文系の血が騒ぐからポエムに活路見出すんよね?

171:デフォルトの名無しさん
24/03/31 20:48:04.91 52brzQwH.net
>>168
ゲーデルの不完全性定理、わかる?

172:デフォルトの名無しさん
24/03/31 20:50:54.92 ckXISkGH.net
バブルソートで長さnのリストがソート済みになることをnに関する数学的帰納法で示すコードを書いて下さい

173:デフォルトの名無しさん
24/03/31 21:07:09.32 zVzgI3KY.net
構成論理でしかない帰納法は逃げ
背理法をプログラミングできてこそ真の数学プログラマ

174:デフォルトの名無しさん
24/03/31 22:17:11.33 dM7Inut1.net
>>167
自己紹介乙
>キチガイ率高い

175:デフォルトの名無しさん
24/03/31 22:21:08.19 HimKkZni.net
数学一般をプログラムするのはきつそうだけど、>>1の内容くらいならMathematicaとかでできるのでは

176:デフォルトの名無しさん
24/03/31 22:38:47.01 GMj391lI.net
iterableがソート済みならばfilter(function,iterable)もソート済みである
これが活路か?

177:デフォルトの名無しさん
24/03/31 23:16:01.19 slFHfGV9.net
>>171
プログラム技術と全く関係ないの、わかる?
単語だけ知ってても意味ないのよ

178:デフォルトの名無しさん
24/04/01 00:21:59.83 3Pei3vn5.net
>>177
知らないのに、無理しちゃって・・・w

179:デフォルトの名無しさん
24/04/01 07:25:14.04 pGaaOwbp.net
べき集合の濃度がもとの集合よりも真に大きいことを対角線論法で示すプログラムを書いて下さい

180:デフォルトの名無しさん
24/04/01 07:29:40.50 ZaHsxqNm.net
ゲーデルの不完全性定理とかプログラミングに関係ないぞ

181:デフォルトの名無しさん
24/04/01 07:32:48.45 aQQXUVqr.net
>>180
負け惜しみ乙

182:デフォルトの名無しさん
24/04/01 10:16:20.76 BJXCW8/H.net
計算機科学的には背理法はプログラミングでの継続に相当するものだと判明している
プログラム=証明 型=命題という対応がある
命題としてはあるが証明ができない型としてa -> b -> a -> aがある

183:デフォルトの名無しさん
24/04/01 10:25:34.89 1jCL8ojm.net
計算機に記号処理での証明は荷が重いやん
これに出来る事は無限に数値計算をする機能だけなんだ

184:182
24/04/01 11:10:53.13 BJXCW8/H.net
訂正((A->B)->A)->A)だった
記号処理はmaxima/mathematicaみたいなのでできるね

185:デフォルトの名無しさん
24/04/01 12:56:05.30 jUMqCzD5.net
パプリカの妄言みてーなスレ

186:デフォルトの名無しさん
24/04/01 15:57:43.42 w0sTGWlC.net
ポストモダンも用語の雰囲気だけで数学や物理の用語を援用して失敗したけど,同じことを繰り返したいのかな

187:デフォルトの名無しさん
24/04/01 16:13:24.51 /OmQcxnO.net
うん。必ずしも泥棒が悪いとはお地蔵様も言わなかった。
パプリカのビキニより、DCミニの回収に漕ぎ出すことが幸せの秩序です。
五人官女だってです!
カエルたちの笛や太鼓に合わせて回収中の不燃ゴミが吹き出してくる様は圧巻で、
まるでコンピューター・グラフィックスなんだ、これが!
総天然色の青春グラフィティや一億総プチブルを私が許さないことくらいオセアニアじゃあ常識なんだよ!

188:デフォルトの名無しさん
24/04/01 16:14:19.64 t6QGzSyx.net
>>182
そう、λμな
でも対応があるだけで実用性はないよな

189:デフォルトの名無しさん
24/04/01 17:57:08.59 jgXiprJQ.net
ム板にバカが書き込むのは今に始まったことじゃないが、意味不明な戯言書き込みに来る奴がすごく多くなった
自分の中ではなんかすごいこと書いてるつもりなのか?すごいバカかキチガイなのはだれが見てもわかるが
そんなことばかりやってるからネットですら過疎って文句言われにくいここに逃げ込むしかないんだろうな

190:デフォルトの名無しさん
24/04/01 19:56:44.57 SUfRD0Nz.net
>>189
不満なら見なきゃいいだろ
インターネットしか居場所ないのか?w

191:デフォルトの名無しさん
24/04/01 20:16:04.58 ige+71d6.net
スウ学をプログラミングするのは、簡単そうぢゃーーーん
だって、乱数発生させて、厨二病が喜びそうな単語を
羅列すれば、完成だもんね。多分。ていうかさ、
全ての証明問題は、
【ゲーデルの不完全性定理により証明不可能 Q.E.D】
ってプログラミングするだけしさ、これだな。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

29日前に更新/105 KB
担当:undef