C++相談室 part156

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/05/19(水) 10:55:13.24ID:LZZifCH2
前スレ
C++相談室 part155
https://mevius.5ch.net/test/read.cgi/tech/1616555235/
740デフォルトの名無しさん
垢版 |
2021/07/13(火) 12:07:43.02ID:WUJYnH4r
>>712
どんなときでも共通するのは声が大きい香具師が勝つ
その場の空気を支配した香具師が勝つ
そしてマスゴミによって印象操作された世界の完成
2021/07/13(火) 12:13:28.49ID:2uidM73f
>>740
その発想は朝鮮人の考え方
最終的には真実が勝つ
2021/07/13(火) 12:25:14.06ID:o0P+1kd0
整数の問題なら実数近似せず
y=x^n で(n=1,2,3,4,5....)を比較してくのが基本だろ

高速化するなら多少のテクニックはあるけどたかだか32〜64bitの範囲
どうってことない
2021/07/13(火) 12:33:54.00ID:Sa7UmWqZ
>>742
癪だが>>719が問題を一番正確に表現できているからもう一回よく読め
2021/07/13(火) 12:34:17.81ID:u8F7J+OY
規格には拘りがあるが数値計算やアルゴリズムの知識はまるでない基地外の狂宴
2021/07/13(火) 12:49:36.15ID:o0P+1kd0
>>743
えーなんだこれ
つまり
x,nが与えられたときx^1/nが整数かどうか?を示すってことか

y^n=xに変換すればなんにせよ整数の探索問題
実数にする必要もない
2021/07/13(火) 13:03:24.24ID:u8F7J+OY
>>745
それ、キミの言ってる32〜64bitの範囲だと尚更>>696と比べたときにメリットないよね???笑笑笑
2021/07/13(火) 13:07:00.03ID:u8F7J+OY
上にも「32bitくらいなら探索すれば〜」とか言ってるアホいたが、なぜ多倍長でもない限り探索するメリットなんてないってわからないんだキミたちは(泣)
2021/07/13(火) 13:25:56.92ID:Ag1Q4SdR
>>741
朝鮮人に詳しいんですね!!
感動しました!!!
749デフォルトの名無しさん
垢版 |
2021/07/13(火) 14:47:47.54ID:OYlFgj5O
つまりそれってint型の整数の範囲でn乗がなんであってもεは1E-12で充分だと保証してから使うの?
要するにεは絶対にそれでいいのか?
750デフォルトの名無しさん
垢版 |
2021/07/13(火) 15:54:31.17ID:WUJYnH4r
>>744
QZか?MZか?片山か?
2021/07/13(火) 18:43:03.58ID:Fq8PEpca
>>747
整数ドメインで行うメリットはいろいろとある

・アホな文系でも理解できる (誤差の見積もりが不要)
・整数演算の方が圧倒的に速い環境 (ARM-M3など)
・浮動小数点演算ライブラリによるコードサイズ増加を防ぐ (チープなマイコン対応)
・doubleが32bitな環境への対応
・64bit整数への対応

選択肢は多いほど良い
2021/07/13(火) 18:48:11.59ID:Fq8PEpca
> ごく一般的なPC環境で、与えられた整数がintの範囲であれば、
> (ある程度の判別を行ったあと)普通に四捨五入で良い

ごく普通の環境、ごく普通の頭ならこれで終わり
2021/07/13(火) 19:39:45.09ID:gA5oZqd8
昔"文系"にいじめられてた可愛そうな子なんです
2021/07/13(火) 19:58:16.23ID:xjdnjcKm
整数演算の最大のメリットがリストに挙がってないのは何でかな
2021/07/13(火) 20:18:44.42ID:Fq8PEpca
>>753
「アホな文系」≠「文系」

>>754
ぜんぜん最大のメリットじゃないからだな
2021/07/13(火) 20:20:09.92ID:Fq8PEpca
>>750
団子のことも忘れないでください
2021/07/13(火) 20:25:35.22ID:xjdnjcKm
>>755
あー・・・何のことか分からねえで言ってるな
758デフォルトの名無しさん
垢版 |
2021/07/13(火) 20:29:09.24ID:OYlFgj5O
最大のメリットって何だ?
2021/07/13(火) 20:35:59.66ID:xjdnjcKm
からかいたくなったから焦らすぜ
アホかどうかは関係ないことさ
2021/07/13(火) 22:54:45.19ID:hgVyntNx
>>755
アホな文系に虐められてたんだね…😢
2021/07/13(火) 23:05:28.90ID:u8F7J+OY
>>752
それは質問者が質問時に自分で言ってることなので……(苦笑)
2021/07/14(水) 05:08:53.51ID:T6a5Tff4
hoge がビルドされてて hoge.h があるシステムでは hoge を呼び出し、そうでなければ何もしない関数 call() ってどう書くべきてすかね?

これまでは
#if __has_include(<hoge.h>)
#endif
で分岐してたんですが、これだと if に該当しなくてもコンパイラは #if #endif で囲まれてる部分を読み込むし、そこに hoge(); という文があれば「hoge() なんてないよ」というエラーが出ます
該当しない場合は if の中を読み飛ばすとかできますかね?
2021/07/14(水) 07:18:49.74ID:l4qXoRve
__has_includeはインクルードされたかどうかじゃなくて、
そのファイルが存在するかどうかを判定するやつだからね

hoge.hの中で
#define HOGE_LOADED
して、呼び出し側で
#if defined(HOGE_LOADED)
call();
#endif
って感じかな
764デフォルトの名無しさん
垢版 |
2021/07/14(水) 07:40:27.18ID:l4qXoRve
hoge.hの中を編集できないなら、

読み込み:
#if __has_include(<hoge.h>)
#include <hoge.h>
#define HOGE_LOADED
#endif

呼び出し:
#if defined(HOGE_LOADED)
call();
#endif
2021/07/14(水) 08:03:52.87ID:wXBQSN5l
>>761
だったらコーナーケースが無いこととその理由を解説したら?
2021/07/14(水) 11:41:16.26ID:b1WA6GgP
>>765
お前QZだろ
コテ外すな
2021/07/15(木) 00:20:47.29ID:Fm/xoZyi
>>763
ありがとうございます。

hogeがそのシステムでビルドされてるかどうかの判定は、外部ツールか自分の目に頼らないと無理ですよね?
2021/07/15(木) 00:40:53.25ID:y+mqrw+D
自作自演w
2021/07/15(木) 05:48:49.27ID:GxcfqrJG
>>767
> hogeがそのシステムでビルドされてるかどうか
hoge.lib, hoge.dllとかが存在するかどうかを調べればいいだけだとすると
見つかったかどうかをコンパイル時にフラグ(-DHOGE_LIB_FOUND)として渡せれば
C++内で#if defined(HOGE_LIB_FOUND)みたいにして使える。
(これはコンパイル時のことだからC++だけでは普通無理だとおもう)
2021/07/15(木) 06:31:17.96ID:CtTYgJ1T
C++よりcmakeとかビルドツールのお仕事だと思う
2021/07/15(木) 09:10:44.89ID:Fm/xoZyi
>>769-770
あざす!
2021/07/15(木) 18:30:18.77ID:HJCZYZ96
Unifyde Call Syntax FOREVER!!!!!!!
2021/07/15(木) 20:57:38.68ID:kDBlsdNK
>>695
多倍長なら是非是非、こちらを参照あれ、一応 C++ で完結している多倍長演算ライブラリです!
https://mevius.5ch.net/test/read.cgi/tech/1434079972/37
2021/07/15(木) 20:58:44.86ID:kDBlsdNK
>>712
なに、いつものことですよ‥‥
2021/07/15(木) 21:00:08.01ID:kDBlsdNK
>>732
残念ながらハズレ
2021/07/15(木) 21:02:01.21ID:kDBlsdNK
>>756
私は忘れていませんよ
2021/07/15(木) 21:02:27.40ID:kDBlsdNK
>>766
ちがうよね‥
2021/07/15(木) 22:53:15.98ID:2Mj48wOt
QZ現る
2021/07/16(金) 00:17:25.62ID:37KQZYs3
>>773
積の実装はどのアルゴリズムで?
2021/07/16(金) 04:05:20.77ID:6W3ohAQ3
>>779
筆算法‥‥1 bit × 1 bit を筆算するやりかた、非乗数をシフトしながら乗数のビットが1 のときアーキュムレータに足す、というO(n^2) のものです、「乗法を加法の繰り返しにする」よりはましかと
課題はカラツバ法に直すことですが、まだ出来ていません
2021/07/16(金) 04:11:57.42ID:37KQZYs3
>>780
では、話になりませんのでそんなもの勧めないでいただけますか
2021/07/16(金) 04:43:48.91ID:6W3ohAQ3
>>781
他の方が優れたソースコードを提示していただければ、私のは引っ込めますけれどもね
2021/07/16(金) 04:57:11.80ID:N9xjQvrw
多倍長整数ならそれこそboostで良いでしょ
高速な畳み込み演算がしたいなら整数環上でFFTします
つーか精度の観点から言っても速さの観点から言っても一択でしょ(なんでカラツバ?)

そもそも、話の流れからして多倍長整数勧めるのもおかしいし
話わかってないなら出張るなよ

せっかく隔離用の個人スレ (本来ならこれも甚だ迷惑な存在だが) があるんだから、そこで永久に一人でやっててよ
2021/07/16(金) 05:01:00.91ID:teDb7k99
>>782
https://www.google.com/search?q=%E5%A4%9A%E5%80%8D%E9%95%B7%E6%95%B4%E6%95%B0+FFT
2021/07/16(金) 05:06:07.44ID:+GJR5l7e
カラツバ法はやばい
せめてフーリエだ 
すでにあるmpirとかいうやつでいいだろ
2021/07/16(金) 05:16:00.53ID:6W3ohAQ3
>>784
ちゃんとコンパイルできるコードはどれですか?
2021/07/16(金) 05:18:43.72ID:37KQZYs3
ワロチ
既知の事柄のサーベイ能力も低いときた
2021/07/16(金) 05:36:01.54ID:6W3ohAQ3
>>787
サーベイ能力が低いのは認めます、お願いですから、そのままコンパイルすれば動くコードを教えてください
2021/07/16(金) 05:58:14.27ID:N9xjQvrw
>>783は読めねーのかよ気狂い
2021/07/16(金) 06:18:07.75ID:qtVJ0qYe
こんなスレまで来てC++の話してるくせにboost知らないってマジかよ…
2021/07/16(金) 09:21:02.78ID:s4+8hxkm
QZというコテは叩かれやすいからカノンにしたのか
2021/07/16(金) 09:57:20.84ID:KEhhoM0/
略してQアノン
2021/07/16(金) 11:50:57.63ID:/EXEczMl
コテを変えても頭の悪さは相変わらずなんだな
まあ中の人が同じなんだから当然だけど
2021/07/16(金) 12:07:04.82ID:EpGpWKJL
頭悪いのは別にいいんだが、マナー違反が深刻に多いんだよ
・質問に頓珍漢なレスをつける (そもそも回答側に立つのがおこがましいし)
・話題に関係なく自分の創作物を押し付ける
・個人用としてしか機能していないスレを保守し続ける
・都合悪いレスは当然無視
>>668

人間性が劣悪なのが透けて見えるから本当にキツい
2021/07/16(金) 12:09:38.94ID:EpGpWKJL
全然関係ないが>>259,789が一ヶ月のときを経て同じIDなのって偶然?
それともID被りってプログラム的にもっともらしい理由付けあるんだっけ?
796デフォルトの名無しさん
垢版 |
2021/07/16(金) 13:36:58.69ID:tbXedaSH
フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
https://prtimes.jp/story/detail/DBnPOktyljr
テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。
2021年、フリーランスのトレンドは「移住&テレワーク」と予測
https://prtimes.jp/main/html/rd/p/000000045.000050142.html
リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、業務委託契約の求職者と企業をマッチング
https://www.value-press.com/pressrelease/262778
1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
https://www.nishinippon.co.jp/item/o/713384/
新潟県、移住してきたテレワーカー/フリーランスに最大50万円を支給
https://internet.watch.impress.co.jp/docs/news/1287094.html
茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
https://internet.watch.impress.co.jp/docs/news/1281120.html
長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給
https://internet.watch.impress.co.jp/docs/news/1274735.html
フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説
https://freenance.net/media/money/4255/
『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル
https://prtimes.jp/main/html/rd/p/000000051.000010457.html
797デフォルトの名無しさん
垢版 |
2021/07/16(金) 16:34:47.56ID:6/LQ7Fle
>>795
ID被りはわりとまじでたまにある
2021/07/16(金) 18:25:58.33ID:X0WexOAj
キャッシュの衝突みたいなもんだろ
2021/07/16(金) 18:26:37.20ID:X0WexOAj
ハッシュなw
2021/07/16(金) 19:28:22.91ID:6W3ohAQ3
>>794
>・質問に頓珍漢なレスをつける (そもそも回答側に立つのがおこがましいし)
いいんです、話題を拡散させるのがねらいだし

>・話題に関係なく自分の創作物を押し付ける
たしかに見たら馬鹿になるかもしれませんから、各自お気を付け遊ばせ

>・個人用としてしか機能していないスレを保守し続ける
いつでも本来の用途に使えるのですよ、有償で問題を片付けるスレ、としてよろしく

>・都合悪いレスは当然無視
無視することによるデメリットを引き受けるのなら当然でしょ?

>・>>668
まあこういうのはやめるようにします、ごめんなさい
2021/07/16(金) 19:32:12.26ID:6W3ohAQ3
>>783
それって裏で GMP を読んでいるだけでは?
そして GMP はアーキテクチャー依存ですよね?
2021/07/16(金) 19:32:52.60ID:6W3ohAQ3
>>789
>>901
2021/07/16(金) 19:38:06.89ID:6W3ohAQ3
>>801
ああ、GMP だけではないようですね MPFR, MPIR MPC とか、でも、どれもアーキ依存にみえますけれども、実際どうなんでしょうね‥‥
2021/07/16(金) 19:41:03.47ID:6W3ohAQ3
>>791
選ブラのデフォを他分野のコテにしたのです、そっちでもキチガイピアニスト扱いですが、まあ、いいか‥‥
2021/07/16(金) 19:49:34.02ID:+QzOnEF5
ピアノも弾けないのにピアニストとはこれいかに?
2021/07/17(土) 00:31:45.93ID:uZE7YjUc
>>800
全部開き直りじゃねーか
迷惑だなあ
2021/07/17(土) 00:37:22.71ID:i16o/xCs
>>795,797-799
ただのIDなら良いんですが、これ両方とも自分のなんですよね……
2ch側で同じ人間の書き込みを紐付ける仕組みがあったとしたら怖くないですか?
しかもその人が RONIN 利用者だったりしたら……
2013年8月の「2ちゃんねる個人情報流出事件」を彷彿とさせますね
2021/07/17(土) 03:16:29.97ID:GNWgh0W+
>>807
ID 生成アルゴリズムについて出ている情報はかなり前のものなんで
今でも同じかどうかはわからんけど、わかっている範囲では偶然としか言いようがない。
何度もあれば話は別だが一回あっただけでは偶然ではないと考える人はいないよ。

ただ、 2003 年頃から生のIPアドレスを記録することは明言されているので、
プロバイダの協力があればどのデバイスから書き込んだのかは特定できる。

今では 2ch はいわゆるプロバイダ責任制限法が言うところの
特定電気通信役務提供者に該当するはずなので
必要なときに個人情報を提供できる体制は事実上の義務なんだよ。

書き込み内容に権利侵害があったときに個人情報を提供することで掲示板運営者は
責任を制限されるという法律なので 2ch の側で責任をかぶる覚悟がない限り
書き込み元の情報を残さないという態度は取れない。
2021/07/17(土) 03:26:32.94ID:+M7J9sQi
別スレでも同じ現象を見た
6/3と7/16はどういうわけか同じIDとなっていたようだ
2021/07/17(土) 03:56:04.37ID:GNWgh0W+
>>809
ID の生成元は

・ IPアドレス (のハッシュから一部のバイトを取り出したもの)
・ 毎日更新されるランダム値
・ 板名

をくっつけてハッシュをとったものとされている。
IPアドレスとランダム値が同じであれば ID も同じになる。

たまたまその日が同じランダム値だったのかもね。
2021/07/17(土) 05:58:32.38ID:OBAxlXTB
範囲for文ってompで並列化できるの?
自作コンテナを走査したいとしたら、なんか満たすべき条件ある?
2021/07/17(土) 06:23:13.20ID:l7v2uVky
やってみりゃいいじゃん
2021/07/17(土) 13:21:42.77ID:0jiuXQpQ
chrono で測ったn並列プログラムの実行時間が実世界で経過した時間のn倍になってる気がして、これが正しいかどうか調べたいんですが、ストップウォッチで測って比較するしかないですか

ちなみに並列化はopenmpでやってます
814デフォルトの名無しさん
垢版 |
2021/07/17(土) 16:14:23.13ID:eTC1af8g
バカノンノン
2021/07/17(土) 16:18:43.54ID:DE+0Jqb8
>>813
https://letmegooglethat.com/?q=%E6%99%82%E9%96%93%E8%A8%88%E6%B8%AC+c%2B%2B
2021/07/17(土) 17:58:37.00ID:z0Sx2PLf
え、chronoなり何なりで測った時間がおかしい、って話じゃないの?
そら検証したけりゃ別スレッドやプロセスで測るなりストップウォッチなりだろう、と思ってたんだが

ただまぁ経過時間の加算とかでおかしなことになってるのを真っ先に疑うべきだね
2021/07/17(土) 19:11:08.33ID:cBM+BeK7
時間測定クラスはシングルトン使ってるよね?
どうせ複数の箇所で測定したのを加算してるってオチでは
マルチスレッドならmutexか何かでnewの所をロックしないとおかしくなるし
2021/07/17(土) 19:36:36.54ID:txbUHFZy
実行時間といってるのがCPU時間のことならn並列でn倍になるからね
メインスレッドのCPU時間だけを見るべき
かんたんなんだしストップウォッチで測ればいいじゃん
2021/07/17(土) 22:27:23.07ID:gI+aCVlx
スレッド毎にcronoした結果をnスレッド分足したらn倍になりそう……
2021/07/17(土) 22:30:43.79ID:gI+aCVlx
WindowsならGetTickCount()でも使うところだけど
(実質15.6 ms(PCによっては10 ms?)を超える分解能にならないのはおくとして)
C++標準でms単位のカウンタってあるます?
2021/07/17(土) 22:44:14.11ID:z0Sx2PLf
chronoで分解能決めれるやんけ
2021/07/18(日) 00:41:49.86ID:9YAoR/6C
>>691
私も試してみましたが、結局 >>694 の言うとおり実際に n 乗して験算するしかないかなぁ‥‥と思いました

私の環境でも、x == (int)pow((int)pow(x, 1.0/n), n) では散々 https://ideone.com/AXH87Q
次のようにすると、わりといい感じです https://ideone.com/NM2btt

せっかく多倍長演算の話が出たので、もしも暇とやる気があったら boost::multipricise と GMPの c++ 記述と、例の自作のやつとに載っけて試してみます
2021/07/18(日) 02:35:57.32ID:pNZOhAQw
>>818
これ

たとえばmain()の最初と最後のchrono::system_clock::now()の差で時間を計測してると仮定して、その間でnスレッド走らせてそれぞれt秒かかったとしたら結果はnt秒になる
2021/07/18(日) 10:01:58.21ID:WbmfjGIN
>>823
>その間でnスレッド走らせてそれぞれt秒かかったとしたら結果はnt秒になる
なんで?
chrono::system_clock::now()は現在時刻を返すと書いてある
仮に消費したCPU時間だとしても、スレッドの本数分ではなく高々論理コア数倍までで収まりそうに思ーう
2021/07/18(日) 11:33:46.95ID:/c4qfmiI
まあCPU時間と勘違いしてるんだろうね
2021/07/19(月) 13:10:18.03ID:whuO5wb3
g++で、-static オプションを付けたときにリンクされるライブラリのパスってどうやって指定するんですかね?

システムにインストールされてる glibc が不具合を抱えてるので、$HOME/local に別バージョンの glibc をインストールしました
動的リンクの場合は -Wl,--dynamic-linker=$HOME/local/lib/ld-linux-x86-64.so.2 を渡すことで問題なくコンパイル・実行できたのですが、静的リンクを使用する場合どうしたら良いのかわかりません
2021/07/19(月) 17:28:07.02ID:ddBZ8vH3
>>609
一番上はコピーだぞ
2021/07/20(火) 07:03:16.39ID:ouQfIwtX
>>826
これLinux板のくだ質とかで聞いた方が良いですかね?
スレチでしたら移動します
2021/07/24(土) 08:11:39.12ID:jjSVv9BX
>>811
普通にできるよ
> 範囲for文のOMP並列化


ランダムアクセス不可能な自作クラスは常識的に考えて無理だろうけど
詳しい人いたら教えてくんろ
2021/07/25(日) 16:30:34.85ID:m1WCNOY9
全員死んだの?
2021/07/25(日) 17:00:04.04ID:DW9TtY2c
g++ があんまり本気じゃなくて萎えるんだよね
並列化のとこ
2021/07/25(日) 17:20:27.49ID:Wj/gwJho
誰がメンテしてるかわからんがリナスも当時g++の出来の悪さにぶちギレて依頼、C++はクソの一辺倒を貫いてる
2021/07/25(日) 17:26:02.39ID:Wj/gwJho
firefoxとかもそうだけど、有志がサポートするソフトってそれをメンテしている人間が無能の働き者だと最悪ゼロから作り直さないと逝けなくなるところが怖いところやな
2021/07/25(日) 17:31:37.94ID:DW9TtY2c
元々はハッカーが「気合い入れる」祭りみたいなもんだったのに
いつしか過去バージョンとの互換性がどうたらで硬直化していった
そういうところはマイクロソフトやIBMに任しときゃいいのに
リスクを承知で面白みというメリットを捨てちまいやがって
2021/07/25(日) 17:34:19.95ID:Kn/tUAQv
> メンテしている人間が無能の働き者

怖がらなくて良いぞ
彼らはお前より有能だから

そして世間を怖がらせてるのは
自分の実力も知らず
相手の実力も知らない
そんなお前なんだよ
2021/07/25(日) 17:44:55.94ID:Wj/gwJho
>>835
元開発者な方ですか?
効いてるw効いてるw
2021/07/25(日) 20:29:47.07ID:f5YSZ9Lg
>>831
gccにはC++に並列ライブラリが入る前からParallel Modeがあって、
今はそこをIntel TBBに丸投げしてるだけだしな
誰かが本格的にテコ入れするまではこのままだろうね
2021/07/26(月) 18:54:55.35ID:poXtKo35
GCCはモノリシックにこだわってグチャグチャだし
かと思えばHurdはマイクロカーネルにこだわって死産だし
あいつらアホなんじゃないかと思うことはある
2021/07/26(月) 20:56:05.01ID:afAoM3cN
GCC はコードの構成が悪いことは百も承知で長期的にソフトウェアの自由を守るために必要だという戦略なんだよ。
当初からの目的通りに活動しているだけ。
まあその戦略で目的をはたせるかどうかは結果を見ないとわからんけどな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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