トップページ > プログラム > 2015年11月21日 > 2FFj0oRp

書き込み順位&時間帯一覧

1 位/175 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000000002101321000010



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part120 [転載禁止]©2ch.net
C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
もういっそプログラム言語から自作しようって [転載禁止]©2ch.net

書き込みレス一覧

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で始まってたり全部大文字だったりする変数は定数だって決まってたりする。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。