- C++相談室 part120 [転載禁止]©2ch.net
648 :デフォルトの名無しさん[sage]:2015/11/21(土) 13:19:39.66 ID:2FFj0oRp - 必要なだけメモリを確保しておいてそこに文字列を展開して
printf("%s", buffer); したり write(STDIN_FILENO, buffer, length); したりしたら少しは速くなるんじゃない? あるいはファイルに書き出してみたらどうなる? windows上でgcc動かしたこと無いから実際どうなるかは知らんけど、 7文字の順列(重複が無ければ約5000通り)の列挙に1秒はどう考えても掛かり過ぎてる。
|
- C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
933 :デフォルトの名無しさん[sage]:2015/11/21(土) 13:40:32.20 ID:2FFj0oRp - 2000年問題っていうとあれか、
ある改札では2000年2月29日相当日が内部的に2000年3月1日になってたから 改札内から出れない問題が頻発したっていう >>927 そもそも製品コードにCのrandを使うべきではない。 Cのrandは仕様上は15bitの乱数値が出せれば十分だという事になってる。 その上、典型的な実装では単純な線形合同法が使われていて、処理が重い上に 現在の値から次回の値を予測できるだけの情報を常に出力している(スポンジが無い)。 xorshift法(超高速)やBBS法(遅いけど暗号学的に安全)なんかの手法を用途に応じて使い分けるべき。
|
- もういっそプログラム言語から自作しようって [転載禁止]©2ch.net
40 :デフォルトの名無しさん[sage]:2015/11/21(土) 14:23:19.44 ID:2FFj0oRp - 言語名は言語作り始める前に決めなきゃディレクトリ名が定まんないんだよな。
でも言語を作り始めないとそもそもどんな名前が相応しいかが定まんない。
|
- C++相談室 part120 [転載禁止]©2ch.net
656 :デフォルトの名無しさん[sage]:2015/11/21(土) 16:53:35.71 ID:2FFj0oRp - >>655
39行目と42行目のcoutへの出力を削ったらどのくらいの時間になる? どうも単にcoutが重いだけに見えるんだけど。 手元の環境で試したら(非Windowsだけど)、 そのまま, n=7 ==> Time : 0.009858 2つcoutを削った物, n=7 ==> Time : 0.000465 と20倍近く速くなったけど。
|
- C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
940 :デフォルトの名無しさん[sage]:2015/11/21(土) 17:08:16.77 ID:2FFj0oRp - >>934
改札云々はジョークだよ。 randの方は仕様書に The rand function computes a sequence of pseudo-random integers in the range 0 to RAND_MAX. The value of the RAND_MAX macro shall be at least 32767. って書いてあるんだよ。 https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use にある通り、ほぼ全ての実装で線形合同法が使われてる。
|
- C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
942 :デフォルトの名無しさん[sage]:2015/11/21(土) 17:24:37.57 ID:2FFj0oRp - >>941
なんでそんな脈絡もない名前に変わってるのかが分からんけど どんな名前に変わってるか分かってるんならgrepすりゃ良いじゃん
|
- C++相談室 part120 [転載禁止]©2ch.net
658 :デフォルトの名無しさん[sage]:2015/11/21(土) 17:57:03.03 ID:2FFj0oRp - >>657
>>648読んだ? 一度に出力すりゃいいじゃんって言ったんだけど。 https://ideone.com/2dfghh
|
- C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
944 :デフォルトの名無しさん[sage]:2015/11/21(土) 18:02:16.86 ID:2FFj0oRp - >>943
自分が書いて他人に分からないってどういう事? rand標準関数の名前が#defineで置換されてるって事? それともオレオレrand関数が作られてて、それを探すって事?
|
- C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
946 :デフォルトの名無しさん[sage]:2015/11/21(土) 18:18:20.79 ID:2FFj0oRp - >>945
32bit同士の乗算なんて見たくもない古い人間でごめんよ。 そのRKISSは簡単に回路化できそうで良いね。
|
- C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
949 :デフォルトの名無しさん[sage]:2015/11/21(土) 19:13:44.15 ID:2FFj0oRp - >>947
最低でも120クロック近く掛かる計算を3度も4度も繰り返すのが嫌だってのが理由だからね。 半端な古さでごめんね? >>948 何をもって乱数と言うのかにも依るな、それは。 変数の定義にconstなり何なりが付いてれば定数だわな。 あとはコーディング規約によってはkで始まってたり全部大文字だったりする変数は定数だって決まってたりする。
|