C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part150
https://mevius.5ch.net/test/read.cgi/tech/1584975873/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
テンプレここまで
探検
C++相談室 part151
レス数が1000を超えています。これ以上書き込みはできません。
2020/05/14(木) 11:53:25.59ID:ZPCfyTux
984デフォルトの名無しさん
2020/07/11(土) 12:27:05.11ID:wTK7zrpK なんだかものすごく懐しさを思わせる文体だな
20年ぐらい前のニチャンネラーの書き方だな
20年ぐらい前のニチャンネラーの書き方だな
985デフォルトの名無しさん
2020/07/12(日) 06:25:16.82ID:tiZP2jTh ある整数nが他の整数の4乗であることを調べたい。
(int)pow(pow(n, (double)1/4), 4) が n であるかどうか調べりゃ良いよな?
キャストはどっちかのpowにつければ十分だよね?
(int)pow(pow(n, (double)1/4), 4) が n であるかどうか調べりゃ良いよな?
キャストはどっちかのpowにつければ十分だよね?
987デフォルトの名無しさん
2020/07/12(日) 06:48:24.60ID:D8OEpmlP なにそのカッコ
988デフォルトの名無しさん
2020/07/12(日) 06:52:03.42ID:D8OEpmlP powよりsqrt 2回の方が良い
浮動小数点演算が非常に遅い環境なら
整数の2分検索という手も
浮動小数点演算が非常に遅い環境なら
整数の2分検索という手も
989デフォルトの名無しさん
2020/07/12(日) 07:00:58.89ID:D8OEpmlP int m = (int)sqrt(sqrt((double)n);
if (n == m*m*m*m) ...
普通はこれで良い
if (n == m*m*m*m) ...
普通はこれで良い
991デフォルトの名無しさん
2020/07/12(日) 07:03:01.16ID:D8OEpmlP >>985だと内側のpowの結果を整数に丸めないと
992デフォルトの名無しさん
2020/07/12(日) 07:05:50.02ID:D8OEpmlP >>990
2個のn*nを1回にするかどうかはコンパイラ次第
コンパイラに頼るならカッコつけずにn*n*n*nで良いし
頼らないならn*nを一時変数に一旦入れないと
そもそもnを4乗しても意味ないけど
2個のn*nを1回にするかどうかはコンパイラ次第
コンパイラに頼るならカッコつけずにn*n*n*nで良いし
頼らないならn*nを一時変数に一旦入れないと
そもそもnを4乗しても意味ないけど
993デフォルトの名無しさん
2020/07/12(日) 07:06:15.17ID:m1mq7f3n 外でキャストしても無意味だろ、内をキャストしなきゃ
intにキャストだと誤差で1減る可能性があるから四捨五入しなきゃダメ
でだ、4乗するのにpow()はありえないし
4乗根もpow()よりsqrt(sqrt())の方がマシじゃないかな
でだ、元々整数だけの問題なのにsqrt()使うのが嫌
二分探索で(x * x * x * x) == nになるxを探す方がいいんじゃ?
intにキャストだと誤差で1減る可能性があるから四捨五入しなきゃダメ
でだ、4乗するのにpow()はありえないし
4乗根もpow()よりsqrt(sqrt())の方がマシじゃないかな
でだ、元々整数だけの問題なのにsqrt()使うのが嫌
二分探索で(x * x * x * x) == nになるxを探す方がいいんじゃ?
994デフォルトの名無しさん
2020/07/12(日) 07:12:28.75ID:D8OEpmlP nが平方数なら
普通はsqrt(n)の結果に誤差は無い
nもdoubleも32bitの環境でdoubleキャストによって誤差が出る場合や
sqrtの計算方法が普通ではない場合には
丸め方法も考えないと
普通はsqrt(n)の結果に誤差は無い
nもdoubleも32bitの環境でdoubleキャストによって誤差が出る場合や
sqrtの計算方法が普通ではない場合には
丸め方法も考えないと
995デフォルトの名無しさん
2020/07/12(日) 07:15:24.87ID:tiZP2jTh 二分探索ってO(log n)でしょ?
sqrtとかpowより速いの?
これも「実装依存」なの?
sqrtとかpowより速いの?
これも「実装依存」なの?
996デフォルトの名無しさん
2020/07/12(日) 07:16:36.03ID:tiZP2jTh まあ速さよりは間違えそうじゃなさと文法的な分かりやすさ、短さの方が今求めてるものですけど
言ってなくてすみません
言ってなくてすみません
997デフォルトの名無しさん
2020/07/12(日) 07:18:45.88ID:D8OEpmlP doubleが非常に遅い環境や
浮動小数点演算のライブラリを積みたくない場合
などで2分検索を使う場合もある
という程度
浮動小数点演算のライブラリを積みたくない場合
などで2分検索を使う場合もある
という程度
998デフォルトの名無しさん
2020/07/12(日) 08:11:47.62ID:oJ0fA8EI 「平方数か」を高速に判定する方法があれば、
平方数なら → 平方根を計算 → 平方根が平方数か
…という2段階の判定もありそうな感じ。
平方数なら → 平方根を計算 → 平方根が平方数か
…という2段階の判定もありそうな感じ。
999デフォルトの名無しさん
2020/07/12(日) 08:31:16.95ID:m1mq7f3n1000デフォルトの名無しさん
2020/07/12(日) 09:41:30.40ID:uBv3fNFk 整数Cを素因数の4乗で割っていき、
1になるまで余りが出なければ、
全体は整数の4乗である
1になるまで余りが出なければ、
全体は整数の4乗である
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 58日 21時間 48分 5秒
新しいスレッドを立ててください。
life time: 58日 21時間 48分 5秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★3 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★8 [蚤の市★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★3 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 神田沙也加さん元恋人で元俳優の前山剛久 六本木のメンズラウンジ勤務を報告「真叶(まなと)です。よろしく」 [muffin★]
- 【悲報】30代独身女性「結婚や成功してる友達との差は開く一方、このまま1人で生きて淘汰される人生だと気づいて絶望してる…406万いいね [483447288]
- VIPでパズドラ
- 【埼玉】34歳無職、置き配📦を盗みまくる!その数、400点!😱 [718678614]
- フリーレン「んっ///だ、ダメだよアウラ!ヒンメルが見てる」アウラ「何言ってるの?ヒンメルはもういないじゃない」クチュクチュペロペロ
- 月のスマホ代250円なんだが
- 米国株大暴落!!!NISA含み損www [252835186]
