!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 154
https://mevius.5ch.net/test/read.cgi/tech/1578997950/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 155
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 76ba-P5bm)
2020/05/10(日) 23:20:27.99ID:Z3WQBr9X0271デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 09:27:28.43ID:zNtEkj210272デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 09:39:45.10ID:zNtEkj210 >>271
a & 1 にカッコ忘れてるのは多目に見て
a & 1 にカッコ忘れてるのは多目に見て
273デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 10:09:23.28ID:zNtEkj210274デフォルトの名無しさん (ワッチョイ 7f69-H7K1)
2020/06/26(金) 10:12:30.36ID:DHczgJjy0 ビットand の & の優先順位が低いのがすげー気になるマン
275デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 10:24:55.68ID:0ez7fC22d >>271
aが小さいとダメだからバグです
aが小さいとダメだからバグです
276デフォルトの名無しさん (ブーイモ MM0f-Tpb5)
2020/06/26(金) 11:51:33.67ID:CsRb/b6RM 確かに、掛け算並みに優先度高くても良い気がする
277デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 12:06:06.43ID:wPd6FHznd 比較より低いのは仕様バグだな
278デフォルトの名無しさん (ワッチョイ 3ff9-5fXH)
2020/06/26(金) 12:54:54.87ID:hOK/Kg/V0 a,bがdoubleでsqrt(a*a+b*b)以外にどう書けと
279デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 13:34:59.23ID:zNtEkj210 >>278
もし double でも計算途中でオーバーフローする可能性があるなら、最初に適当な係数の平方で a b を割って計算してから係数を掛けるとか?
あるいは long double が使えるなら単純にそれで計算するとか。
逆に言えば、オーバーフローする可能性があるならなんとかしないといけないわけだから、なんの変形もせずオーバーフローするに任せたらそれこそバグでしょうよ。
もし double でも計算途中でオーバーフローする可能性があるなら、最初に適当な係数の平方で a b を割って計算してから係数を掛けるとか?
あるいは long double が使えるなら単純にそれで計算するとか。
逆に言えば、オーバーフローする可能性があるならなんとかしないといけないわけだから、なんの変形もせずオーバーフローするに任せたらそれこそバグでしょうよ。
280デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 13:41:41.84ID:zNtEkj210281デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 14:27:07.38ID:QICJMmXvM doubleでオーバーフローって、10の何乗を想定してる?
282デフォルトの名無しさん (ワッチョイ 4f19-IZ2D)
2020/06/26(金) 15:19:41.24ID:gU0A9MqI0 aとbの差が大きいときでしょ
283デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 15:43:00.88ID:QICJMmXvM それオーバーフローじゃないし、
情報落ちのことだとすればsqrt(a*a+b*b)をどう工夫して防げと?
情報落ちのことだとすればsqrt(a*a+b*b)をどう工夫して防げと?
284デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 16:10:21.31ID:tBxKhrZw0285デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 16:42:15.29ID:QICJMmXvM で、宇宙の観測可能な距離をヨクトメートル単位で表したら?
286デフォルトの名無しさん (ワッチョイ 0f97-h9M3)
2020/06/26(金) 16:44:50.44ID:R6SXx1iE0 デカルト距離は物理的な空間でしか使われないわけじゃないしなあ(屁理屈
287デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 17:02:33.96ID:tBxKhrZw0 64bitあれば大きいほうはエクサ、小さい方はアトまで扱える
今飲んでるコーヒーの液面からカップの底までが1アトパーセクくらい
今飲んでるコーヒーの液面からカップの底までが1アトパーセクくらい
288デフォルトの名無しさん (ワイーワ2 FFbf-/Fs/)
2020/06/26(金) 17:41:45.88ID:PjbtVFt+F289デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 17:47:26.42ID:zNtEkj210 double で何やったらオーバーフローするのかってことじゃなく、必要な対象を計算するのに必要な型や計算手順は何かってことだろ。
掛け算や指数を扱うならオーバーフローについては普通に考慮するもんだと思うけど、そうじゃないのか?
今扱おうとしてる対象について考慮してるから double なら大丈夫だと考えてるんだろ。
で二分木については足し算がオーバーフローする可能性が盲点ってことで、なるほどと思うべき所だろ。
アルゴリズム上も計算途中に最初に与えた imax を超える値が現れるようには見えないんだから。
今時 double も 64bit整数も当たり前だったとしても、SIMD使いたいからデータ長を抑えたいなんてこともあるでしょ。
掛け算や指数を扱うならオーバーフローについては普通に考慮するもんだと思うけど、そうじゃないのか?
今扱おうとしてる対象について考慮してるから double なら大丈夫だと考えてるんだろ。
で二分木については足し算がオーバーフローする可能性が盲点ってことで、なるほどと思うべき所だろ。
アルゴリズム上も計算途中に最初に与えた imax を超える値が現れるようには見えないんだから。
今時 double も 64bit整数も当たり前だったとしても、SIMD使いたいからデータ長を抑えたいなんてこともあるでしょ。
290デフォルトの名無しさん (ワイーワ2 FFbf-/Fs/)
2020/06/26(金) 17:54:06.22ID:PjbtVFt+F 一般論で答えても叩かれる
質問内容に特化して答えても叩かれる
どうしろと
質問内容に特化して答えても叩かれる
どうしろと
291デフォルトの名無しさん (ブーイモ MM0f-Tpb5)
2020/06/26(金) 17:56:45.81ID:9etEQyfpM 俺くらいになればケッセルランを12パーセクで飛ぶくらい余裕
292デフォルトの名無しさん (スプッッ Sd5f-WMoV)
2020/06/26(金) 19:11:05.35ID:EPLAnBEId293デフォルトの名無しさん (スプッッ Sd5f-WMoV)
2020/06/26(金) 19:13:45.24ID:EPLAnBEId294デフォルトの名無しさん (アウアウウー Sad3-u/pE)
2020/06/26(金) 21:15:32.77ID:TyyL07+Ya >>240
みんなかどうかは知らんがおれは書けるな
みんなかどうかは知らんがおれは書けるな
295デフォルトの名無しさん (アウアウウー Sad3-u/pE)
2020/06/26(金) 21:18:13.75ID:TyyL07+Ya >>253
カニチャーハン
カニチャーハン
296デフォルトの名無しさん (ワッチョイ 3f7d-naG6)
2020/06/26(金) 21:39:07.24ID:/YkOh9yY0 int x=0;
int y=(x=1)+(x=2);
とするとyが4になってしまいます。
3だと思うのですが。
int y=(x=1)+(x=2);
とするとyが4になってしまいます。
3だと思うのですが。
>>271
>オーバーフロー回避を意識する必要があるなら a / 2 * b とか?
それは回避したことになりません、演算子 / 2 と * b のどちらが先に処理されるかはコンパイラが籤引きで決めるか独断偏見で決め打ちするのでは?
>オーバーフロー回避を意識する必要があるなら a / 2 * b とか?
それは回避したことになりません、演算子 / 2 と * b のどちらが先に処理されるかはコンパイラが籤引きで決めるか独断偏見で決め打ちするのでは?
299デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 21:52:32.85ID:Sd6G194T0300はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/26(金) 21:54:17.86ID:gtOtInFM0301デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 21:57:33.08ID:Sd6G194T0 int x=0;
x=1;
x=2;
int y=x+x; //(2+2)
という話になっているのだと思われ
x=1;
x=2;
int y=x+x; //(2+2)
という話になっているのだと思われ
302デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 22:03:10.60ID:Sd6G194T0 あとは優しいおじい・・紳士様がアセンブラでは実際どうなっているかを解説してくれるはず
303デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 22:32:16.04ID:zNtEkj210 >>297
自信を持っては言えないけど、/ 2 してから * b するのとその逆とでは結果が違うんだから、書いた式と結果が異なる可能性がある計算順にコンパイラがいじるものかね?
例えば各項を関数として a() / c() * b() にした場合、a 〜 c がどの順で実行されるか、つまり項の評価順は保証されないけどそれら結果を使った計算順は式通りになるんじゃないの?
でももし仮にそういう懸念があるなら、カッコ付けるなりそれでだめなら2手に分けるなりすればいいんじゃね。
自信を持っては言えないけど、/ 2 してから * b するのとその逆とでは結果が違うんだから、書いた式と結果が異なる可能性がある計算順にコンパイラがいじるものかね?
例えば各項を関数として a() / c() * b() にした場合、a 〜 c がどの順で実行されるか、つまり項の評価順は保証されないけどそれら結果を使った計算順は式通りになるんじゃないの?
でももし仮にそういう懸念があるなら、カッコ付けるなりそれでだめなら2手に分けるなりすればいいんじゃね。
304デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 22:48:16.05ID:GYQIE3peM >>302
アセンブラだとxに2入れて、yに4入れて、おしまいだろうな。
アセンブラだとxに2入れて、yに4入れて、おしまいだろうな。
305デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/26(金) 23:31:20.43ID:ONx8T6wJ0 誰も逆汗しないのな。
一昔前だったら
A「俺がやってみるから待ってろ。」
B「いや、俺がやるから(ry」
C「いやいや、俺こそが」
AB「「どうぞどうぞ」」
の前振りだったのに。
VC++2019のデバッグモード
int y = (x = 1) + (x = 2);
00C118FF mov dword ptr [x],1
00C11906 mov dword ptr [x],2
00C1190D mov eax,dword ptr [x]
00C11910 add eax,dword ptr [x]
00C11913 mov dword ptr [y],eax
最適化したら 304 になるんだろうけど。
一昔前だったら
A「俺がやってみるから待ってろ。」
B「いや、俺がやるから(ry」
C「いやいや、俺こそが」
AB「「どうぞどうぞ」」
の前振りだったのに。
VC++2019のデバッグモード
int y = (x = 1) + (x = 2);
00C118FF mov dword ptr [x],1
00C11906 mov dword ptr [x],2
00C1190D mov eax,dword ptr [x]
00C11910 add eax,dword ptr [x]
00C11913 mov dword ptr [y],eax
最適化したら 304 になるんだろうけど。
306デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 23:34:17.38ID:GYQIE3peM クソ冗長なコードだな
307はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/27(土) 00:56:28.31ID:VCabyp7F0 >>297
/ と * の優先順位は等しくて左結合なんだから疑問の余地はない。
a/2*b と書いてあったら a を 2 で割ってからそれに b をかける。
またはそうしたかのように見えるような振舞いをすることは保証される。
そうなってなかったらコンパイラのバグだよ。
/ と * の優先順位は等しくて左結合なんだから疑問の余地はない。
a/2*b と書いてあったら a を 2 で割ってからそれに b をかける。
またはそうしたかのように見えるような振舞いをすることは保証される。
そうなってなかったらコンパイラのバグだよ。
308デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 01:04:32.76ID:zYxBmbbI0 「回避手段があるならバグとしない。」
309デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 01:14:50.37ID:qKnmoagb0 例えばスケーリングなんかの時、オーバーフローを避けるため割り算やってから掛け算することもあるし、丸め誤差を小さくするため掛け算やってから割り算することもあるし、
意図して式書いてるんだから順序を勝手に変えられたらやっぱり大問題だよな。
意図して式書いてるんだから順序を勝手に変えられたらやっぱり大問題だよな。
310デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 07:08:40.12ID:TsX0h7IG0311デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 07:18:53.17ID:TsX0h7IG0 >>311
ありがとうございます、たしかに副作用完了点に対する私の誤解です
@値の評価の問題、と、A副作用の問題、とを完全にごった煮にしてました、今回は副作用は関係ない…
>QZがここまでアホだとは
現在までの推移を客観的に観察している限りにおいて、これはスランプでは済まず、私はこれからもっと阿呆になっていくのだろうと私は予測しています
https://mevius.5ch.net/test/read.cgi/tech/1434079972/ へのエントリー数もパッタリ止まってもう増えそうもありません
ありがとうございます、たしかに副作用完了点に対する私の誤解です
@値の評価の問題、と、A副作用の問題、とを完全にごった煮にしてました、今回は副作用は関係ない…
>QZがここまでアホだとは
現在までの推移を客観的に観察している限りにおいて、これはスランプでは済まず、私はこれからもっと阿呆になっていくのだろうと私は予測しています
https://mevius.5ch.net/test/read.cgi/tech/1434079972/ へのエントリー数もパッタリ止まってもう増えそうもありません
313デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 08:38:40.98ID:Fil4ka9J0 >>296
鼻から悪魔ネタはもうお腹いっぱい
鼻から悪魔ネタはもうお腹いっぱい
314デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 08:39:33.42ID:Fil4ka9J0 >>309
行を分けて書けばいいだけ
行を分けて書けばいいだけ
315デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 08:42:53.25ID:aqzZKmXR0 アホが使うと使い手とそっくりな動きになる
Cとはそういうものだ
Cとはそういうものだ
316デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:45:36.41ID:TsX0h7IG0317デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:48:05.70ID:TsX0h7IG0318デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:51:31.93ID:TsX0h7IG0 オーバーフローを最近勉強して
それだけが気になって
それを回避するために別の問題を起こす
初心者君のたわごとだから
放置すればいいんだけど
それだけが気になって
それを回避するために別の問題を起こす
初心者君のたわごとだから
放置すればいいんだけど
319デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 08:57:09.10ID:aqzZKmXR0 どんくらいまでの誤差を許容すべきかは
なかなか数学的な考えどころ
なかなか数学的な考えどころ
320デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 09:11:00.12ID:TsX0h7IG0 許容誤差
パラメーターの対応範囲
コスト
保守性、可読性、...
これらを総合的に考えてコードを作るのが普通
1個だけの要素が気になるといびつな実装になる
色々な規格も偏った視野で作られる事が多くて
いびつな物が多い
それぞれの項目を勉強するのはもちろん良いこと
パラメーターの対応範囲
コスト
保守性、可読性、...
これらを総合的に考えてコードを作るのが普通
1個だけの要素が気になるといびつな実装になる
色々な規格も偏った視野で作られる事が多くて
いびつな物が多い
それぞれの項目を勉強するのはもちろん良いこと
321デフォルトの名無しさん (ワッチョイ 3f4f-NJGG)
2020/06/27(土) 09:23:41.94ID:6HwwPL420 >>317
両方起こりえる状況なら変数の精度不足というバグか。
両方起こりえる状況なら変数の精度不足というバグか。
322デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 09:32:46.13ID:Fil4ka9J0 >>316
ああアホには「文」を分けると書かないとわからんかw
ああアホには「文」を分けると書かないとわからんかw
323デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 09:40:26.98ID:TsX0h7IG0324デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 09:50:13.95ID:qKnmoagb0 オーバーフローの話は (imax + imin) / 2 ではなく imin + (imax - imin) 2 と書けば回避できるってのが発端なわけだけど、何がそんなに気にくわないんだ?
盲点とも言えるよくやりがちなことなんだから、素直に吸収しときゃいいんじゃないの?
盲点とも言えるよくやりがちなことなんだから、素直に吸収しときゃいいんじゃないの?
325デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:02:32.81ID:TsX0h7IG0326デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:08:05.06ID:qKnmoagb0 >>325
それってどれのこと?
それってどれのこと?
327デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:11:14.54ID:qKnmoagb0328デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:20:58.17ID:TsX0h7IG0 元はカーニハンとかいう人だろ
その影響を受けたのが>>268
オーバーフローの可能性が無いなら
前者のままでも良いっていうか
前者の方が良い場合もある
コストは確実に前者の方が安い
リニア検索ではなくてコードサイズの大きな2分検索を使うあたり
パフォーマンスが全くどうでも良い所ではないということもわかるわけで
移植性は後者、コストは前者、
可読性は微妙だが前者?
intよりsize_tを使うべきなんて思ってないよ
使う範囲、使う環境、移植性、...
などなどでどうするべきかは変わる
その影響を受けたのが>>268
オーバーフローの可能性が無いなら
前者のままでも良いっていうか
前者の方が良い場合もある
コストは確実に前者の方が安い
リニア検索ではなくてコードサイズの大きな2分検索を使うあたり
パフォーマンスが全くどうでも良い所ではないということもわかるわけで
移植性は後者、コストは前者、
可読性は微妙だが前者?
intよりsize_tを使うべきなんて思ってないよ
使う範囲、使う環境、移植性、...
などなどでどうするべきかは変わる
329デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:23:22.01ID:qKnmoagb0330デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:23:42.01ID:TsX0h7IG0 C言語スレだから
チープな8bit環境から
スーパーコンピューターまで
様々な所で使われる
重視すべき項目は時と場合で大きく違う
チープな8bit環境から
スーパーコンピューターまで
様々な所で使われる
重視すべき項目は時と場合で大きく違う
331デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:25:33.79ID:TsX0h7IG0332デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:29:38.97ID:qKnmoagb0333デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:49:08.20ID:TsX0h7IG0334デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 11:08:27.27ID:qKnmoagb0 >>333
たぶん論旨は伝わったと思うので追い打ちかけるつもりではないが、レス付けるに当たっては「オーバーフローを回避するなら」と必ず付けてるし、扱う値の範囲を鑑みて型が充分か考慮しろと言ってるだけのことな。
扱うのが宇宙の座標をメートル単位で、くらいの話なら double でもオーバーフロー的な問題は無いなとか、
でももしシミュレーションで宇宙を100次元空間として体積を求める話だったら double でも大丈夫かな?とか考慮するでしょ。
まあそんなケースだと値の大きさより有効桁の方が心配だけど、なんにしてもとりあえずデカい型だから大丈夫wなんて漫然と思ってるならただのアホという至極当然の話。
たぶん論旨は伝わったと思うので追い打ちかけるつもりではないが、レス付けるに当たっては「オーバーフローを回避するなら」と必ず付けてるし、扱う値の範囲を鑑みて型が充分か考慮しろと言ってるだけのことな。
扱うのが宇宙の座標をメートル単位で、くらいの話なら double でもオーバーフロー的な問題は無いなとか、
でももしシミュレーションで宇宙を100次元空間として体積を求める話だったら double でも大丈夫かな?とか考慮するでしょ。
まあそんなケースだと値の大きさより有効桁の方が心配だけど、なんにしてもとりあえずデカい型だから大丈夫wなんて漫然と思ってるならただのアホという至極当然の話。
335デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 12:40:30.36ID:Fil4ka9J0336デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/27(土) 12:53:15.33ID:F1FZoULud >>334
状況によって適切なコードを選ぶべきと思ってるなら別にいい
そうじゃなさそうだったので
「間違ってる」「バグ」「正しくない」という主張じゃなかった?
2分検索が10%しか正しく書けないなんてことはないと思うんだがね
状況によって適切なコードを選ぶべきと思ってるなら別にいい
そうじゃなさそうだったので
「間違ってる」「バグ」「正しくない」という主張じゃなかった?
2分検索が10%しか正しく書けないなんてことはないと思うんだがね
337デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 13:02:32.88ID:qKnmoagb0 >>336
>2分検索が10%しか正しく書けないなんてことはないと思うんだがね
そう、ここが気になったんだけど、でももし二分検索を書いたこと無い人がアルゴリズムを見て一発で動作するコードが書けるか?という話なら、案外その程度かもと思ったり。
分割時の端数処理の考慮が不適切でインデックスが変化せず無限ループに陥ったり、検索から抜け落ちる要素が出たり、要素数が0〜2ないし3くらいの範囲でうまく動かなかったり。
ちょっと動かせばすぐ修正点に気付いて動くコードに仕立てられるだろうけど、ぶっつけで動かせるかと言ったら案外難しいんじゃね。
>2分検索が10%しか正しく書けないなんてことはないと思うんだがね
そう、ここが気になったんだけど、でももし二分検索を書いたこと無い人がアルゴリズムを見て一発で動作するコードが書けるか?という話なら、案外その程度かもと思ったり。
分割時の端数処理の考慮が不適切でインデックスが変化せず無限ループに陥ったり、検索から抜け落ちる要素が出たり、要素数が0〜2ないし3くらいの範囲でうまく動かなかったり。
ちょっと動かせばすぐ修正点に気付いて動くコードに仕立てられるだろうけど、ぶっつけで動かせるかと言ったら案外難しいんじゃね。
338デフォルトの名無しさん (ワッチョイ 0fda-PIQW)
2020/06/27(土) 14:22:51.51ID:BPJhbq4z0 クイックソートを一発で書けと言われるとちょっとつらい。
あまりにうろ覚えすぎる。
30分待ってやる
と言われれば思い出しながら余裕を持って書ける。かな?
いやどうだろう?
ソートは完璧だろうけど、アルゴリズムはあやしいな
「クイックに似た何かソート」になりそうかも
あまりにうろ覚えすぎる。
30分待ってやる
と言われれば思い出しながら余裕を持って書ける。かな?
いやどうだろう?
ソートは完璧だろうけど、アルゴリズムはあやしいな
「クイックに似た何かソート」になりそうかも
>>296,298-301
些細なことですが、>>296,298,299 の結果は納得いかないです
>int y = (x = 1) + (x = 2);
たしかに gcc/clang とも警告は出ますが、しかしそれはシーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定という意味ですね
しかし演算子 + のオペランドの値は確定していて、すなわち 2 と 5
だから y の値は、この場合は確定的に 7 になるはずです
実際、手元の clang(8,0,1) でコンパイルした場合、結果は y = 7 で上の解釈と合致します。
私は gcc がバグっていると思いました。
些細なことですが、>>296,298,299 の結果は納得いかないです
>int y = (x = 1) + (x = 2);
たしかに gcc/clang とも警告は出ますが、しかしそれはシーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定という意味ですね
しかし演算子 + のオペランドの値は確定していて、すなわち 2 と 5
だから y の値は、この場合は確定的に 7 になるはずです
実際、手元の clang(8,0,1) でコンパイルした場合、結果は y = 7 で上の解釈と合致します。
私は gcc がバグっていると思いました。
>>339
×シーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定
○シーケンスポイント間で x を複数回書き込んでいる、という警告で、それは x の値が 2, 5 のいずれかになるか不確定
×シーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定
○シーケンスポイント間で x を複数回書き込んでいる、という警告で、それは x の値が 2, 5 のいずれかになるか不確定
341デフォルトの名無しさん (ガラプー KK83-hH/T)
2020/06/27(土) 16:04:40.17ID:WNNU6Y/YK 既出かもしれんが
>int y = (x = 1) + (x = 2);
演算順は
(x = 1)
(x = 2)
左辺値 x + 左辺値 x
y = その結果
なんじゃないの?
>int y = (x = 1) + (x = 2);
演算順は
(x = 1)
(x = 2)
左辺値 x + 左辺値 x
y = その結果
なんじゃないの?
>>341 ありがとうございます
JISX0301 の代入演算子をみると
>「6.5.16 セマンティクス「代入式は、代入後の左オペランドの値を持つが、左辺値でない」
つまり
式 x = 2
の値は 2 ではなく x というわけですか…なるほど
JISX0301 の代入演算子をみると
>「6.5.16 セマンティクス「代入式は、代入後の左オペランドの値を持つが、左辺値でない」
つまり
式 x = 2
の値は 2 ではなく x というわけですか…なるほど
344デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 18:53:06.85ID:fF6t87uZa 式の値は x = 1 なら 1 だけど、その式の値が x と同一といわれると微妙な気が
コンパイラによって結果が変わってきそうな気も
コンパイラによって結果が変わってきそうな気も
345デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 19:00:52.23ID:zYxBmbbI0 数学の変数とプログラムの変数は別物。
346デフォルトの名無しさん (ワッチョイ 8fe6-NJGG)
2020/06/27(土) 20:34:42.19ID:5xR8poHP0 そもそもイコールではなくて代入だもんね
347デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 20:36:44.26ID:TsX0h7IG0 比較が =
代入が :=
の方が良かったと思う
代入が :=
の方が良かったと思う
348デフォルトの名無しさん (ワッチョイ 8fe6-NJGG)
2020/06/27(土) 20:37:36.35ID:5xR8poHP0 :3
349デフォルトの名無しさん (ワッチョイ 4f7f-Tpb5)
2020/06/27(土) 20:39:21.93ID:ItnTp6fM0 >>342
寝るの早いよ!
寝るの早いよ!
350デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 20:42:32.55ID:zYxBmbbI0 つ ぴゅう太BASIC
351デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 20:44:48.50ID:aqzZKmXR0 >>347
PASCALが嫌いな人が作った言語でか?
PASCALが嫌いな人が作った言語でか?
352デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 20:56:58.25ID:YxSvZ5UV0 代入も比較も同じ = 記号なんだけど代入した結果を利用できない言語はあるね。
353デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 20:57:46.41ID:YxSvZ5UV0 あ、ごめん。ないかな?でも作れなくはないか。
354デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:01:20.32ID:fF6t87uZa >>353
代入文の言語とか
代入文の言語とか
355デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:01:54.32ID:fF6t87uZa 文は値を持たないから
356デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:16:43.71ID:fF6t87uZa 代入式なら
a = b = 0:
は大丈夫だけど、
代入文の言語ではダメ(文法エラー)
卑近な例だと excelVBAとか
a = b = 0:
は大丈夫だけど、
代入文の言語ではダメ(文法エラー)
卑近な例だと excelVBAとか
357デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 21:48:32.85ID:TsX0h7IG0 >>352
BASIC
BASIC
358デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 21:54:01.50ID:YxSvZ5UV0 あ、そうだ。昔の BASIC がそれだったな。今もそうか。
359デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/27(土) 22:14:52.03ID:8IoNpLP20 Fortranも駄目だった気がする
360デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/27(土) 22:45:34.92ID:3uU6UKGu0 iZ-Cで頑張っている方々もいる。
361デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 22:52:26.39ID:Fil4ka9J0362デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 23:11:39.40ID:YxSvZ5UV0 ま、しかし、本当なら代入は全く違う記号(あるいはワード)使って欲しいところではある。
昔々中学生の頃に初めてBASICのリストを見て A = A + 1 ってなんじゃこりゃと思った事あるし。
普通の数学や算数とルールが違っているのに同じであるかのような記号の使い回しで混乱w
昔々中学生の頃に初めてBASICのリストを見て A = A + 1 ってなんじゃこりゃと思った事あるし。
普通の数学や算数とルールが違っているのに同じであるかのような記号の使い回しで混乱w
363デフォルトの名無しさん (ガラプー KKb3-hH/T)
2020/06/27(土) 23:17:49.21ID:WNNU6Y/YK それ小学生のとき見たからすんなり入ってきた
方程式とは違うよってご丁寧に書いてあったし混乱はなかった
方程式とは違うよってご丁寧に書いてあったし混乱はなかった
364デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 23:24:19.62ID:zYxBmbbI0 >a = b = 0:
BASICじゃ
bが0なら a=-1
bが0でないなら a=0
だっけ。
BASICじゃ
bが0なら a=-1
bが0でないなら a=0
だっけ。
365デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 23:37:39.31ID:fF6t87uZa そっか、そのとき b = 0 は代入文じゃなくて、値を持つ比較式ですね
文法は間違いでした
文法は間違いでした
366デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 23:38:09.75ID:fF6t87uZa 文法エラーは間違いでした
でした
でした
367デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/28(日) 00:32:47.05ID:akwdxVh60 =は代入が比較より使用頻度が高いので、2文字(=:)が代入だと地味に面倒そう。
368デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/28(日) 07:11:45.70ID:4OGtUBl/0 >>362
APLお勧め
APLお勧め
369デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/28(日) 11:47:20.61ID:vGhSDCc20 iZ-Cに反応しないのは素人か。
370デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/28(日) 17:12:13.76ID:8Xgo7zrJ0 >>368
今のAPLはつまんなくなったね
今のAPLはつまんなくなったね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 【テレビ】粗品「THE W」バッサリ「おもんない、レベル低い」審査員就任で「日テレが“血の海”に…」 [湛然★]
- 通気取り「⚪︎⚪︎を食べればその店の実力が分かる」←だから何だ?
- 女の子集合!
- ひまでんぼ
- おまえら宝くじは買わないと当たらないんだぞ?
- タバコ吸わんがこれでタバコ吸ってたらカッコ良いかも
- 「鈴木彩艷」←これ読めない奴wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
