1 名前:デフォルトの名無しさん mailto:sage [2021/04/24(土) 08:04:49.48 ID:nPKzA798.net] 競え
862 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 02:33:01.01 ID:kjD6KzfX.net] >>840 お前もとことん馬鹿だな。 コード書いても抽象理解が出来ない人には、そのコードの本質は分からんし、 こんなところに書ききれるわけでも無いからかけないだけだ。 なお、抽象 = シンボライズ、シンボリック という意味で、曖昧や玉虫色という意味では無いぞ。 本質的な部分を記号化、定理化、規則化、一般化して理解できるようにしたもの を「抽象化」と言う。
863 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 03:29:12.50 ID:rYDKtnCr.net] linkedlistの計算量を勘違いし 平衡二分木とハッシュセットを混同する 数学100点マンがいると聞いて
864 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 05:30:40.66 ID:lQ57RfmU.net] >>842 >こんなところに書ききれるわけでも無いからかけないだけだ。 スレじゃなくて、IdeoneとかGihubのgistに書いてもらえれば大丈夫ですよ
865 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 05:43:24.70 ID:4SyL85E7.net] >>838 >、g(N) = a N + b と近似した場合の a の値が極端に小さい。…@ なぜですか? ハッシュテーブルの実装方法から論じてみください もしかして、あなたは@を数学の公理、みたいに扱っているのですか?そんなことではコンピューターサイエンスは無意味だし面白くないでしょう? でもC/C++ 至上主義者というのなら、私と気が合いますね
866 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 08:46:35.08 ID:XZMNlO6i.net] >>775 MFC(Win32)に関しては、メッセージキューとイベントは別物だぞ。 イベントは、 イベント処理中でも降って来る。
867 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 10:07:17.08 ID:OAOUQrou.net] なんでハッシュテーブルの話になったのかと思えば>>813 にいちゃもん付けたいだけか
868 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 11:16:09.54 ID:O1qGwT+t.net] ベンチマークもなしに実時間の話をされてもなぁ しかも具体的な実装上の問題点の指摘もなく他人のベンチマークは信用できないとか宣われてしまうとこちらとしては会話しても意味がない人なんだと判断せざるを得ないんですよね
869 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 11:52:31.39 ID:q0VGOju1.net] >>845 公理ではなくて、処理時間の平均値を確率論で書いている。
870 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 11:57:28.95 ID:q0VGOju1.net] >>849 [補足] 確率論で証明することが出来るが、とてもめんどくさいので割愛する。 失礼だが、質問者のレベルから推測すると、ちゃんと書いても理解できない。
871 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 12:01:12.30 ID:EOOuRFRK.net] >>845 じゃないけど 最悪値が重要な用途もある また、確率はデータの分布が決まってはじめて決まるもの 分布次第ではあなたの想定通りにはならない
872 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 12:06:08.85 ID:q0VGOju1.net] >>851 確率論では、ランダム性を仮定する。
873 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 12:43:27.37 ID:XuzXkdX2.net] >>842 ここはC++ vs Rustスレなのだからコードを出さなければ何も判定できない 机上の空論ばかり書き綴るよりも現実に使われるCPUと向き合わなければならない 例えばRustの標準ライブラリHashMapでも用いているSwiss Tables法ではハッシュ衝突時の別エントリ探索にSIMD命令を用いている CPU命令4つで16エントリ同時に探索候補を判別していきメモリキャシュも活かすようこのためのメタデータを連続領域に配置している
874 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 13:08:20.11 ID:PE/XVSQC.net] >>852 値がガウス分布に従うとかなんらかの仮定をおいていると思うのですがあなたの言うランダム性とはなんですか あらゆる分布を想定しているのですか
875 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 13:21:52.08 ID:iO91q1zt.net] >>831 > O(N)の定義は、Nを無限に大きくしていった時に、 コンピュータサイエンスでアルゴリズムの評価をするときは、Nを無限にするなんて考えません ハッシュアルゴリズムはO(1)でFA
876 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 13:46:42.22 ID:lQ57RfmU.net] >>848 ずっとそんな感じ 計算量ではちゃんとわからない、コストがかかって遅くなる、とか言いつつ、忙しいから実装はできない、お前は馬鹿だから理解できない、みたいなことを数ヶ月に渡って大量に書き込み続けてる 数学でいつも100点取るらしいし、さぞ偉いお方なんでしょうなあ…
877 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 18:09:07.25 ID:cGshi4Y2.net] >>854 いまの場合で言えば、N個のキーに対するハッシュ値が、可能な限り重ならずに 分布すること。
878 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 19:52:13.50 ID:4SyL85E7.net] >>856 リジェクトされたネタだとか…
879 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 20:04:46.70 ID:h+yNZQm8.net] >>857 意味不明
880 名前:デフォルトの名無しさん [2021/12/06(月) 21:08:31.14 ID:4qQbBrsy.net] ハッシュが衝突しやすいコリジョンデータを使ったDDos攻撃が出来るのでは?
881 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 13:11:29.70 ID:jcfwZSTS.net] >>854 最大M個の振り分け能力があるハッシュ構造にN個の(key, value)ペアを 書き込んでいる場合を考える。 ただし、Mは 定数とし、N が大きくなっても拡張していかないものとする。 このとき、一回の検索に掛かる平均時間をg(N,M)とすると、 ほぼ、 g(N,M)=b・(ceil(N/(2M)) ただし、 ・b は、一回の文字列比較に掛かる時間。 ・ceil(x)は、xを越えない最小整数。 と書ける。これは、ほぼ、 g(N,M)=b・((int)(N/(2M) + 1) =(int)(N/(2M))*b + b と書ける。Nが大きい時には、 g(N,M)=a*N + b a = b / (2M) と書ける。 Mが大きい時、aは、小さいが0ではないので、処理時間は、O(1)ではなく、O(N)である。
882 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 13:27:33.41 ID:pFZAiCY5.net] Wikipediaでも明記されている ・ハッシュテーブルの検索や追加はO(1) ・ハッシュテーブルの拡張もO(1) > ハッシュテーブルはキーをもとに生成されたハッシュ値を添え字とした配列である。 > キーを要約する値であるハッシュ値を添え字として値を管理することで、検索や追加を要素数によらず定数時間O(1)で実現する。 > > 利用率が一定を超えた場合に、より大きいサイズのハッシュテーブルを用意して格納し直す操作が必要となる。これをリハッシュ (rehash) と呼ぶ。 > この操作はすべての要素のハッシュ値を再計算して新たなハッシュテーブルに格納するためO(n)であるが、 > 配列のサイズを指数的に拡張する事で、動的配列の末尾追加操作と同様に償却解析によって計算量をO(1)とみなす事ができる。
883 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 14:35:15.82 ID:iH9Jzajc.net] >>862 例えば、M=128で、128種類のハッシュ値に振り分けられるなっている ハッシュ構造の場合、N=128万にすると、1つのハッシュ値に1万個の (key, value)のペアが対応している。 そして、1個のkeyを検索する時、平均的には、1万個の半分の5000回 くらいkey値の比較を行うと一致するものが見つかる。 なのでこの場合、1個のkeyに対する検索時間は 5000*(keyの比較に要する時間) となる。 Nを128億にすると、 5000万*(keyの比較に要する時間) になる。
884 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 14:52:05.46 ID:iH9Jzajc.net] >>863 誤:128種類のハッシュ値に振り分けられるなっている 正:128種類のハッシュ値に振り分けられるようになっている 誤:5000*(keyの比較に要する時間) 正:5000*(1回のkeyの比較に要する時間) // ()内は、keyが文字列の場合、1回の文字列比較に掛かる時間。 誤:5000万*(keyの比較に要する時間) 正:5000万*(1回のkeyの比較に要する時間) // ()内は、keyが文字列の場合、1回の文字列比較に掛かる時間。 >>862 > 利用率が一定を超えた場合に、より大きいサイズのハッシュテーブルを用意して格納し直す操作が必要となる。これをリハッシュ (rehash) と呼ぶ。 >>861 の4行目で、リハッシュは行わないと断った。 はっきり、Mを定数とすると書いている。
885 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 17:09:08.05 ID:Io+x78vq.net] 数学100点マンの机上の空論がさらに輪をかけてるな >>864 > 最大M個の振り分け能力があるハッシュ構造にN個の(key, value)ペアを書き込んでいる場合を考える。 > M=128で、128種類のハッシュ値に振り分けられるようになっている > Nを128億にすると、5000万*(keyの比較に要する時間)になる。 つまり128億個のデータを128個のハッシュ値パターンでハッシュテーブルに格納か 現実の世界ではなく一人だけの特殊な妄想世界で空論
886 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 17:09:50.30 ID:q8J3SSC4.net] worst caseはO(n)って言えば一言で終わる話だった
887 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 18:11:38.99 ID:U30hRDTM.net] 平均もO(n)だろ
888 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 18:19:10.70 ID:j/zIE0U5.net] でそれにC++やRustとどう関係が?
889 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 18:22:43.53 ID:U30hRDTM.net] さあ
890 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 18:27:32.38 ID:2dc6hCU/.net] とにかく、この >>813 の書き込みはすごい、ってことだ このスレの集大成に近い出来だと思う
891 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 18:35:18.60 ID:U30hRDTM.net] >>623 を無駄に長く書いただけに見える >>624 はスルーで
892 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 18:37:25.57 ID:U30hRDTM.net] 計算可能性 > 計算オーダー > 計算時間 混ぜるな危険
893 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 19:22:19.85 ID:hXWP+cLq.net] >>861 あなたの言うランダム性の定義を伺いたかったのですが 挿入されるkeyはどのような分布に従う仮定なのですか
894 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 19:28:32.42 ID:XGUQnarH.net] 確率論では衝突の発生確率が一様分布と仮定した場合、衝突回数はポアソン分布に従う
895 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 19:37:51.93 ID:smG53G6j.net] 要するに衝突回数は幾何平均(算術平均)とは異なる
896 名前:デフォルトの名無しさん [2021/12/07(火) 19:51:15.50 ID:EZ68mIS/.net] >>873 衝突が起きるとしても、5chのIDが被る程度の稀な確率となる程度のランダム性を想定しています。
897 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 20:13:15.75 ID:hXWP+cLq.net] >>876 分布については特に何も想定してないということですね
898 名前:デフォルトの名無しさん [2021/12/07(火) 20:15:39.60 ID:EZ68mIS/.net] >>877 データに合わせてハッシュアルゴリズムを変更する、アダプティブ・ハッシュ・テクノロジー™をご提案いたします。
899 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 20:16:48.35 ID:EfSST75b.net] 結局のところ衝突回数が算術平均に従う場合はO(n)であるが、この場合確率そのものが極めて小さく分布の期待値が小さいためO(1)に極めて近いとしか評価の仕様がない
900 名前:デフォルトの名無しさん [2021/12/07(火) 20:23:38.39 ID:EZ68mIS/.net] >>813 は、言語のバイナリ生成能力を論じるときに計算オーダーは意味がないと言っているのでは? その理由として、同一の計算オーダーを持つアルゴリズム、あるいは同一のアルゴリズムから、どちらが優れたバイナリを生成できるか論じているので、それはベンチでしか判明しない、と挙げていると思うのです。
901 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 20:33:30.11 ID:U30hRDTM.net] 特定のアルゴリズムを特定の計算オーダーで実装出来ない言語もあるので 全く意味がない事はない
902 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 21:45:05.70 ID:Io+x78vq.net] RustとC++は万能
903 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 21:53:06.58 ID:WxNsBn2X.net] リンクリストの話は?リンクリスト、皆のアドバイスを受け入れて辞め、ハッシュテーブルに絞ることにしたんですか…
904 名前:デフォルトの名無しさん [2021/12/07(火) 21:54:51.19 ID:EZ68mIS/.net] リンクトリストね?
905 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 23:00:58.24 ID:APR/hTgK.net] >>873 異なるキーに対するハッシュ値が、可能な限り異なるランダム性。
906 名前:デフォルトの名無しさん [2021/12/07(火) 23:07:18.00 ID:APR/hTgK.net] >>866 処理時間を g(N)とすると、worst case ではなく、平均が、g(N) = O(N)。 O(N)という記号を使わずに、詳細に書くと、 g(N) = a * N + b だが、利用されるハッシュ値の振り分け数が M 個の場合、 a = b / M 程度となり、M = 1024 の場合、a は、0.001 * b 程度の小さな値になる。 横軸を N、縦軸を g(N) とするグラフを書くと、一次関数となり、y 切片が b、 傾きが 0.001 * b 程度となり、ほぼ水平であるが、僅かに右肩上がりとなる。 もしこれが完全に水平なら O(1)。 今回の場合、非常に水平に近いが確実に単調増加であるので、O(1)のように 見えるが本当は O(N)。
907 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 23:13:13.90 ID:Io+x78vq.net] >>886 O(1)とO(N)の間にはO(logN)やO(√N)など無数にある
908 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 23:15:17.87 ID:APR/hTgK.net] >>887 もち
909 名前:ん、それは当然。 それは全く否定していない。 [] [ここ壊れてます]
910 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 23:18:01.46 ID:APR/hTgK.net] >>888 [補足] 「グラフが水平なら O(1)」とは書いたが、「O(1)ならグラフが水平」とは 書いてない。 つまり、グラフが水平である事はO(1)であることの十分条件であるが、 必要条件ではない。 「グラフが水平 ⇒ O(1)」とは述べているが、その逆の 「O(1) ⇒ グラフが水平」とは述べて無いことに注意。
911 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 23:59:06.43 ID:q8J3SSC4.net] >>886 それがworst caseの話なんだってw amortized average caseがO(1)とみなせる前提をガン無視して 「ほらO(n)だろ」とか言ってても誰も相手にしてくれない
912 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 00:07:41.43 ID:ixfpknHK.net] >>890 いや、違う。 平均は、 g(N) = b * (N/M + 1) 程度。 worst は、 g(N) = b * N どちらも O(N)ではあるが。
913 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 00:20:29.77 ID:ixfpknHK.net] >>891 なお、数学の秀才なら気付くと思うが、この平均の式は、本当は正しくない。 ただし、大体は合ってる。
914 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 00:22:38.55 ID:ixfpknHK.net] >>892 [補足] 何が正しくないかというと、本当は、ある箇所を2 で割る必要があるから。 例えば次のように : g(N) = b * (N/(2M) + 1) しかし、これでも、まだ少し正しくない。
915 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 01:40:32.51 ID:qP3Pvuq5.net] 1次関数の試験で100点取れそうな説明
916 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 01:51:55.62 ID:/oyDmL+H.net] 数学100点君は数学用語の定義を誤解釈しまくって理解してしまっている感じ 説明の内容からしても多分中高生か啓蒙書を読みかじったおじさんなんだろ
917 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 03:16:15.50 ID:ixfpknHK.net] なんでここは、数学が理解できない人ばっかりなんだ。 だから、プログラマが馬鹿にされる。
918 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 03:18:58.91 ID:ixfpknHK.net] C++ vs Rust を語る前に、せめて、数学的に明らかに正しいことを理解できるから でないとどうにもならん。 それ以前の問題。
919 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 03:20:41.94 ID:ixfpknHK.net] それと、科学者にとって最も大事なことは、頭の良さでも知識でもなく、 正直さだ。 自説を主張するために正しい主張を否定してはいけない。
920 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 03:21:17.48 ID:H0CVJE/p.net] 「ランダムアクセス」って任意の要素にアクセスすることを指すんだけど、乱択的に与えられた要素にアクセスすることをそう呼ぶんだと思い込んでる奴が複数いてクソワロ
921 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 03:25:58.49 ID:ixfpknHK.net] >>894 結果は一時式でも、それを求めるには確率論以前に、イマジネーションが必要。 どこかに書いてある知識の組み合わせでは導出できない。 確率論は、自分の想像力が重要に成るので、計算力だけでは無理な分野。 書いてある定理を組合すだけでも導けない。 数学は、基礎の部分はイマジネーションで作られているから、頭の良い 人以外には作れない。 いくら勉強しても無駄。
922 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 04:31:15.37 ID:VGgp1CiZ.net] ハッシュに格納するまでの過程は確率論でも格納された後はただのリニア検索だけの話にすり替わってないか?
923 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 08:47:15.25 ID:qP3Pvuq5.net] >>900 誰でも後から客観的に検証できる性質が数学含む科学の特徴ですよ イマジネーションって言い換えればあなたの妄想ってことですよね
924 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 12:57:52.28 ID:9TnsTyEO.net] データ追加の話をするのであれば、どのようなアルゴリズムでも無限個数を追加するなら無限時間かかるわw
925 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 13:53:27.51 ID:Ji0BscRU.net] chaining使ってる場合でスロット数(M)が固定値かつ要素数(N)に対して小さければO(n)になるのは当然だよね それで100点君は何を主張したいんだっけ?
926 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 14:37:30.67 ID:Ji0BscRU.net] これか >>813 >また、N個のデータを持っているハッシュ構造は、1回の検索は、数学的に厳密にはO(N) >だが、実験的(実際的)にはO(1)のように振舞うと言われており、厳密に扱うには、 >オーダーの記号だけでは表現しきれない。 「1回の検索は、数学的に厳密にはO(N)」になるのは 一般的なハッシュテーブルの実装とは関係ない架空の条件下の話だね つかBig O記法が何の目的で使われるのか把握してなかったのか・・・ 長々とお疲れさんでした
927 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 17:48:45.17 ID:fOrA5OAT.net] 何の目的で使われるの?せっかくだから聞いておきたい
928 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 18:48:01.53 ID:9TnsTyEO.net] なにを言いたいのかさっぱりわからないんだが、さかのぼって読んでみると >>861 > 最大M個の振り分け能力があるハッシュ構造にN個の(key, value)ペアを > 書き込んでいる場合を考える。 > ただし、Mは 定数とし、N が大きくなっても拡張していかないものとする。 > このとき、一回の検索に掛かる平均時間をg(N,M)とすると、 > ほぼ、 > g(N,M)=b・(ceil(N/(2M)) いや、全然違うし 一体何をあらわしてる式なんだ?
929 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 18:55:15.30 ID:swPCtrVA.net] c++: cほど性能はいらないけど、コーティングでcより楽したい Rust: c++くらいの性能はほしいけど、間抜けがメモリリークをエンバグするのを防ぎたい Rustの狙いはc++&コーティング規約&lintでけっこうカバーできるけど、Rustは言語仕様としてコーダー全員に規約遵守を強制しているのが強み。 Rustが本当に普及してきたら、Rust対抗としてC++と連携できるSmartC++が出てくるんじゃないのかね。
930 名前:デフォルトの名無しさん [2021/12/08(水) 19:27:33.65 ID:gZbwMfFK.net] >>908 >Rust: c++くらいの性能はほしいけど、間抜けがメモリリークをエンバグするのを防ぎたい これが重要だな。
931 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 20:11:11.64 ID:nFeiLLyh.net] C++はCと同じ性能が出る 楽をしなければ
932 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 21:56:00.76 ID:tBq4QMAR.net] 間抜けがミスをするというと十分に訓練を受けたパログラマーならミスをしないと読めるが 実際にはコードベースが大きくなると間抜けなミスをする確率が高まるので 自分はミスをしないと思い込むのではなくミスした場合も検出できるようにすべき 静的解析やrustの真価はそういうところにあると思う
933 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 22:28:44.41 ID:nUOO01He.net] >>902 ここの人には理解できないようだがな。
934 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 23:45:42.27 ID:s42For+c.net] >>911 そのためのコーディング規約&lintだろ。 極端な話、Rustみたいに 基本unique_ptrにして共有する部分だけshared_ptrを使用&生ポインタ禁止、 3rdパーティライブラリはunsafeなラッパークラスで閉じ込めた使用のみ可、 といったコーディング規約にして設計すりゃポカミスぐらいは防げる。
935 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 01:07:49.62 ID:5YfzBk4D.net] >>913 何もrustに限った話ではないというのはその通りで 静的解析やrustと書いたのはそういう規約やlintで補うことも可能という意図 ただrustのshared mutabilityを原則禁じるルールなど、lintで同等のチェックするのは難しい気がする
936 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 08:41:44.98 ID:WcyXy+8b.net] >>913 その規約を遵守させる工数がバカにならないんだよなぁ 人数が増えるとさらに倍になるし
937 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 08:48:29.40 ID:o0+jkG0S.net] ポカミスってのは規約守り忘れとかも含むんだよな lintやコンパイラみたいな機械的なチェック以外は基本信用できない
938 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 09:09:54.36 ID:/GGqHUsS.net] lint、コンパイラを無駄に信用しすぎだな。
939 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 12:41:39.28 ID:vUrE0iV7.net] コンパイラに強制させたいのならnext c++待ちかね。 Rustの問題点が顕在化してきたくらいのタイミングで、RustアンチテーゼとしてSmartC++とか出てくるんじゃない? c++のバットノウハウを禁止できればRust使う必要性はずいぶん薄れるな。 「SmartC++のスコープ内では生ポインタ変数禁止」「nullのスマートポインタの生成禁止」くらいでも十分な気がしてきた。
940 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 14:23:33.22 ID:ts6hDhJM.net] Lifetime ProfilerでRustのborrow checkerに近いものを実装しようとしてるけど 機能的にも未熟だし標準的に使われるレベルになるかどうかも現段階では怪しい そんな夢見てるくらいならRust使ったほうが堅いし現実的
941 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 14:58:02.48 ID:U+dcKQya.net] >>918 Rustの問題点てなんですか? 揶揄してるわけじゃなくてまだ入門の勉強中なのでいろいろ興味あります
942 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 17:02:43.74 ID:b9s66c9I.net] >>920 よく言われるのが学習コストの高さ。 c++もいいかげん複雑すぎる言語と言われているけど、Rustはそれに輪をかけて難しい。 特に他の言語を勉強した初級・中級者は変数の挙動から何から違う(&他の言語のようにやるときのためのガイドラインも無い)ので地獄を見るかと。
943 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 18:08:02.53 ID:XihQJo2+.net] んなアホな
944 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 18:22:55.56 ID:vBwfaL6n.net] >>921 そんなことはないと思う Rustはわかりやすかったぜ しかも他より書きやすく便利になった
945 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 18:25:55.97 ID:XihQJo2+.net] さすがのとほほさんも、Rust入門は書けてもC++入門は言語使用がでかすぎて書けなかった模様w https://www.tohoho-web.com/www.htm
946 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 18:47:57.46 ID:lg/9Dj4Y.net] >>923 ちょっとは「何がわかりやすかったか」ぐらいは書こうぜ。
947 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 18:52:37.90 ID:0MvTGuxY.net] 素直に公式のチュートリアルを流す分にはそんなに詰まるところはないと思うけどな 変に他言語の流儀を持ち込もうとするとハマりやすいというのはありそう あといきなりWebアプリ作りたいとか思うとasyncで死ぬってのは多分ある
948 名前:デフォルトの名無しさん [2021/12/09(木) 19:14:20.34 ID:aTCz13pR.net] >>29 https://lkml.org/lkml/2021/12/6/461 ついに正式に第二言語としてとりこまれましたとさ 完璧にお前の負けやな いいか?自分の間違えを完璧に認めて 土下座するんだぞ? 写真上げろよガイジ
949 名前:デフォルトの名無しさん [2021/12/09(木) 20:04:08.95 ID:Nj/MPHcu.net] Mac Objective-C Windows C++ Linux Rust
950 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 20:26:40.72 ID:URUBUipU.net] MacはSwiftじゃないの?
951 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 20:57:13.15 ID:vBwfaL6n.net] >>925 structとenumだけでナンでもできてわかりやすかったです クラスや継承ピラミッドがないのも嬉しかったです あと&selfやらderefやらその他のimpl&のおかげらしくポインタか否かを気にせず使えるのも便利ですね
952 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 21:00:28.65 ID:vBwfaL6n.net] >>927 ArmとGoogleとMicrosoftとRed Hatの後押しのおかげで RustがLinuxの第二言語の地位を確立したのね
953 名前:デフォルトの名無しさん [2021/12/09(木) 21:02:44.54 ID:aTCz13pR.net] 自動参照外しって絶対ただの馬鹿やろ
954 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 21:27:55.05 ID:t4DQqTrM.net] auto derefが害になるRc::cloneしか思いつかなかった 他にどういう問題があるの?
955 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 21:30:18.05 ID:AQ8w6x74.net] 循環参照
956 名前:デフォルトの名無しさん [2021/12/09(木) 21:31:04.21 ID:VGbpB1xz.net] >>931 少し前進したな。このまま着実に進めて行って欲しい。
957 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 00:10:47.49 ID:scZknzCz.net] 個人開発の範囲内だとC++では困るかつRustなら上手くやれるっていうことがないから勉強する意欲があまりなかったんだが、ここまで来ると覚えとかなきゃ損なのかもな
958 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 00:43:14.95 ID:twi4vtZr.net] 損かどうかはともかく一度触ってみるのはいいんじゃないかな C++書いてる時点でライフタイム周りは分かってるわけだし、結構複雑な言語機能もバリバリ使いこなせるタイプなんだからRustが合う可能性は比較的高いと思う
959 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 00:48:18.17 ID:37AH+elO.net] そうか…
960 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 00:50:08.61 ID:tVqwylUj.net] >>934 derefじゃ循環参照作れないと思うが
961 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 05:45:51.32 ID:B+xSEqhP.net] 記述量がどうしても Rust は多いイメージなんだよなあ
962 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 07:02:01.74 ID:iN+TjAqi.net] C++のテンプレートメタプログラミングよりも 高い効率と抽象性をRustでも実現できるの? だったらRust使うが