C++相談室 part156

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/05/19(水) 10:55:13.24ID:LZZifCH2
前スレ
C++相談室 part155
https://mevius.5ch.net/test/read.cgi/tech/1616555235/
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 はコードの構成が悪いことは百も承知で長期的にソフトウェアの自由を守るために必要だという戦略なんだよ。
当初からの目的通りに活動しているだけ。
まあその戦略で目的をはたせるかどうかは結果を見ないとわからんけどな。
2021/07/27(火) 15:50:56.07ID:P6e91jkT
なんで急に書き込み減った?
みんなバカンスとってんのか?
2021/07/27(火) 16:56:16.02ID:GsN3P1i6
ヒント:
じつはこのスレ、大勢いるようで3人ぐらいしかいない
2021/07/27(火) 16:59:12.02ID:/kLodUqV
ハノンの書き込みは頭悪いからすぐわかるしな
2021/07/27(火) 20:34:35.25ID:RHl6eLWp
でも gcc が c での記述を止め、c++ で記述されることになったのには失望しました‥‥
2021/07/27(火) 20:36:17.62ID:RHl6eLWp
>>842
その「ハノン」という呼び方は本意ではないとピアノスレでも散々力説したのだけれども、とうとう自らハノンと名乗るまでに落ちぶれてしまいまとさ、めでたしめでたし‥‥‥
2021/07/27(火) 20:50:38.01ID:P6e91jkT
同じ奴がたくさん質問してる感じはあるが、回答者はバラバラだと思ってたけどなあ
2021/07/27(火) 23:56:35.56ID:Ke8m4iQ/
>>843
コンパイラを走らせる環境はリッチだから問題ない
2021/07/28(水) 10:58:41.57ID:37rNIz61
翻訳環境の怪物化はすごいね
848デフォルトの名無しさん
垢版 |
2021/07/28(水) 14:40:45.53ID:JLxqMRcd
組み込み機器も性能があがっているのだから、理屈のうえではC++の導入コストはさがっているとはいえ
不具合が起きた時に全部自分で対応しなければならない苦行から解放されるわけではないから
組み込み系の低レベル開発者がC++を忌避するのは理解できる
2021/07/28(水) 15:10:15.29ID:5zPBGnUX
>>841
5ch全体でも5人くらいしか居ないよ。
2021/07/28(水) 19:18:33.88ID:NVIQ8eLn
せっかくC++使っているのにイベントバインディングやデリゲートは止めて欲しいな。
クリーンアーキ風から言えばコンストラクターでのディペンデンシーインジェクションにして欲しい。
Cならセルフイベント関数ポインターとコールバックイベント関数ポインターでOKだが、C++ではウザイ。
組込みに生きている身として、最近、富に思う。
2021/07/28(水) 20:28:41.06ID:NVIQ8eLn
連投でスマソ
まぁ Ted Faison風のEvent-BasedはC++では終わったという事だわな。
Cでは有効だが、インターフェースの機能があるC++ではレポジトリーの概念が大事という事。
2021/07/29(木) 19:38:48.60ID:N9xjQvrw
>>829
返信遅れましたありがとうございます


1. メンバ関数としてbegin()、end()を持つ
2. begin()、end()が間接参照演算子、インクリメント演算子、不等価演算子を持つクラスか構造体を返す
という条件を満たすクラスか構造体の範囲for文による走査をopenmpで並列化できたらと思うのですが、何かテクニックないでしょうか
2021/07/29(木) 20:14:33.88ID:6W3ohAQ3
>>850
組み込みの人が DI を語っておられるとは‥‥
2021/07/29(木) 21:38:43.31ID:teDb7k99
またID被ってる
2021/07/30(金) 09:02:20.45ID:7heefpFa
ハッシュの衝突くらいで騒ぐかよ
856デフォルトの名無しさん
垢版 |
2021/07/30(金) 11:20:47.05ID:+rE3rJXm
IPアドレスと日付から算出されるらしいけど結構、衝突するじゃん
体感的にはかなり偏ってて正常なハッシュアルゴリズムとは思えない
2021/07/30(金) 15:01:08.41ID:qMgk6unv
>>856
ハッシュの分散はこの場合は関係ない。 乱数に異常な偏りがある。

これはただの想像だけど、仮想環境の構築にミスがあるんじゃないだろうか。
Docker のスナップショットを作るときに乱数生成器の状態をキャプチャしてしまって
再起動が入ると乱数列も最初から……みたいな。
2021/07/30(金) 18:09:27.82ID:+rE3rJXm
>>857
乱数ではないと思うよ
なまじ乱数だと、その乱数値を覚えておく保存領域がサーバー上に必要になって手間が増える
2021/07/30(金) 19:39:15.89ID:ftRMaVHk
>>856
正常なハッシュアルゴリズムって何?
正常と異常の境界があるの? SHA1は異常なのか?
2021/07/31(土) 05:54:28.89ID:cWLU96cE
偏りがあったら異常やんけ;;;
例えば0〜LONG_MAXを1バイトにするハッシュ関数が0x1Fを全く出力しないとか、
0〜LONG_MAX/2が全て0x11になるとかだったら>>854でなくともさすがに違和感をおぼえるであろう、
2021/07/31(土) 07:49:26.34ID:cWLU96cE
ミシュラン2つ星の実力派レストラン「シングルスレッド(Single Thread)」
https://www.foodee.jp/report/restaurant/fusion-cuisine/new-american-cuisine/3338/
2021/07/31(土) 08:09:20.77ID:t9HNV453
>>860
ハッシュと一様乱数を混同してるか?
2021/07/31(土) 10:32:59.95ID:XdxgF0zQ
結果よりも速度を求められたり、頻出値だけより広く分布させたい場合もあるだろうから要件次第ではあるけども、
一般的には、期待される入力に対して一様に分布していたほうが、衝突確率が下がるのでより望ましい結果と言えるんじゃないの?
2021/07/31(土) 10:52:18.34ID:o9ang7qv
望ましい、というのは、正常と異常の境ではないな
2021/07/31(土) 11:19:08.67ID:N/3vvIjJ
最大1000レスまでしか書き込めない同一スレッド上で別人同士がID衝突する確率は宝くじ1等に当たる確率よりも低いと期待できるが、現実はそうなってない
2021/07/31(土) 12:14:03.01ID:cWLU96cE
つくづくボンクラな>>862、、、
衝突は極力避けたいんだろ?
>一様性
>良いハッシュ関数は、考えられる入力範囲が出力範囲全体になるべく一様に分布するようにマッピングを行う。
2021/07/31(土) 12:18:58.07ID:xfGVog4d
本当にIPアドレスが衝突してる可能性もある
同じマンションとかいう話だけでなくIPoEだと共有してるとかあったはず
技術力なさそうだから5ch側の作りが悪いんだろうけど
2021/07/31(土) 12:23:58.11ID:t9HNV453
>>866
良いとか望ましいなんておまえさんの個人的な主観が聞きたいんじゃねえ
ハッシュにおける正常と異常の境界を聞いている
知らないんなら答え(たふりをす)るな
2021/07/31(土) 12:30:10.08ID:cWLU96cE
>>868って、角度を定規とコンパスで3等分しようとするタイプ?
2021/07/31(土) 12:42:38.84ID:t9HNV453
ここはC++スレだ
人格攻撃は余所でやれ
2021/07/31(土) 12:49:39.86ID:i9NDIoMF
>>868
そんなの設計仕様次第だろ。

SHA1は当初の仕様を満足できない脆弱性を抱えているから、(仕様に対して)異常ということができる。
2021/07/31(土) 13:04:48.82ID:t9HNV453
弱衝突耐性を破る方法が見つかったか否かが境界というのはおかしいだろ
未発見であることと存在しないと証明されていることは違う
2021/07/31(土) 13:10:19.44ID:mrismh1j
>>872
なんでおかしいのかちゃんと反論しろよ。

SHA1が当初仕様を満足できていないのは間違いなく、仕様を満足できていない以上「(仕様に対して)異常」だろ。
2021/07/31(土) 13:17:04.19ID:t9HNV453
なんでおかしいのか2行目に書いたんだが
話にならない人なのか
2021/07/31(土) 14:14:47.38ID:N/3vvIjJ
>>868
> ハッシュにおける正常と異常の境界を聞いている

お金を出す人が境界を決めるだけのこと
技術論の出る幕なし
876デフォルトの名無しさん
垢版 |
2021/07/31(土) 14:36:13.48ID:t9HNV453
おまえさんが技術論できないのはわかった
こちらもこれ以上は追求しない
2021/07/31(土) 14:38:40.17ID:cWLU96cE
>>870
人格攻撃とみなす前に、
入力範囲と出力範囲が同じハッシュ関数において
一様性を満足しないものの衝突耐性が
一様性を満足するものの衝突耐性に勝るケースを一つでも挙げてみたらいかがですかね……

入力の発生頻度に偏りがありハッシュ関数をそれにチューニングする場合はあり得るが、
入力の発生頻度を限定する話はここまでで出ていないから無いものとして
2021/07/31(土) 14:45:30.93ID:t9HNV453
>>877
ハッシュの正常と異常の境界には関係ない話だな
2021/07/31(土) 14:46:37.30ID:cWLU96cE
>>878
無関係かどうかを論ずるには「正常と異常」の定義を
主観非依存な形で明らかにしていただけませんと、
2021/07/31(土) 14:49:27.72ID:t9HNV453
>>879
それは>>856に俺が聞いていることだ
2021/07/31(土) 14:52:41.19ID:cWLU96cE
>>856とかまさにハッシュの一様性の問題でしかないのでは……
2021/07/31(土) 14:57:10.54ID:t9HNV453
衝突耐性と一様性は関係ない
・・・て、これハッシュの初歩の初歩だぞ
2021/07/31(土) 15:09:12.92ID:zwQwPVDS
>>858
前提として、 ID 生成のおおまかな手順は >>810 のようなものになってる。
使われているハッシュアルゴリズムは古い資料では MD5 ということになっているから、
変更されているとしても MD5 よりは良い性質のものが選ばれていると思う。

ハッシュの衝突が頻繁に起こると考えるよりは生成元のバイト列が同じだったと考えるほうが自然。
2021/07/31(土) 15:14:21.76ID:wqQpURd2
同一人物の確率が高いですね(・∀・)ニヤニヤ
885デフォルトの名無しさん
垢版 |
2021/07/31(土) 16:43:06.11ID:LRA0vGhm
最近は濃度濃いからな
2021/07/31(土) 17:18:39.66ID:egUJWjj5
左辺値からmove君今日もイキイキしてんな
2021/07/31(土) 17:34:47.35ID:t9HNV453
匿名掲示板で同一人物かどうとかってアホかお前ら
2021/08/01(日) 00:17:38.34ID:fSdDKS6o
>>882
衝突耐性ってのは衝突しても耐えられる性能ってこと?
一様であれば普通は衝突確率自体低くなりそうな気がするけど
2021/08/01(日) 05:57:41.62ID:4Ph4Dvnc
ハッシュの衝突を故意に起こす攻撃への耐性
強衝突耐性と弱衝突耐性がある
890デフォルトの名無しさん
垢版 |
2021/08/01(日) 11:47:47.11ID:boMMlR1G
>>867
たまたま近所に住んでて出入りしてる店のWiFiが同じとかな
891デフォルトの名無しさん
垢版 |
2021/08/01(日) 11:50:13.10ID:boMMlR1G
>>877
>入力範囲と出力範囲が同じハッシュ関数

5ch/2ch とは関係無い話をなぜするんだ?
2021/08/01(日) 13:05:26.18ID:RrS7g+U3
>>867
>>890
野良ProxyやNordVPNの様なサービス経由か
2021/08/01(日) 15:28:14.61ID:BgB9X1kX
>>867
クライアントのIP被りと5chサーバーの作りになんの関係が?
技術力ないなら黙ってた方がいいかと
2021/08/01(日) 15:29:14.00ID:pw89eIDb
>>886
レス番で言うと誰が誰?
2021/08/01(日) 17:18:44.88ID:ebmqBspL
>>882
その主張は>>877の例を挙げられないのなら偽ですなあ〜〜
どんな教科書をどういう読み方してるのか知らんが
2021/08/01(日) 17:20:28.87ID:ebmqBspL
>>888
強衝突耐性 = (>>877で言うところの)入力範囲
(ハッシュの元になるやつ。5chのハッシュの例でいうと>>810のデータの集合)
からいっぱい集めねば同じハッシュ値(5chの例で言うとID)にならないという特性
(衝突を起こすための仮定が多い(強い条件)から「強」衝突耐性と言うのだと思われ、

弱衝突耐性 = 出力範囲(5chの例で言うとID)から任意に選んだ1つ
から入力範囲を再現しにくいという特性
(衝突を起こすための仮定が少ない(弱い条件)から「弱」衝突耐性と言うのだと思われ、

弱衝突耐性が>>856の問題提起(ID被り)に直接対応する
2021/08/01(日) 17:21:50.37ID:ebmqBspL
ごめ訂正orz
正: 強衝突耐性が>>856の問題提起(ID被り)に直接対応する

で、ハッシュに偏りがあったら、強弱どっちの耐性も一般に低下する
>>860の例でハッシュ関数が0x1Fを出力しなかったら、0〜LONG_MAXからN個ランダムに選んで
ハッシュ化したら同じハッシュになる確率が256/(LONG_MAX+1)から255/(LONG_MAX+1)に低下する(弱衝突耐性の劣化
等、

>>886
単発レス君は何か言いたいことがあれば言っても良いのだぞ?匿名掲示板やし……
2021/08/01(日) 17:23:06.81ID:4Ph4Dvnc
>>895
「関係ない」という主張への反駁は
関係あることを示すだけの簡単なことなのに
2021/08/01(日) 17:28:09.09ID:ebmqBspL
>>898
>>897
といっても確率計算をまつがえたのでそこは訂正汁orz、
>>860の例でハッシュ関数が0x1Fを出力しなかったら、0〜LONG_MAXからN個ランダムに選んで
ハッシュ化したら同じハッシュになる確率が
 1 - (1-256/(LONG_MAX+1)^N
から
 1 - (1-255/(LONG_MAX+1)^N
に低下し、弱衝突耐性が劣化
■ このスレッドは過去ログ倉庫に格納されています