[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

66users がブックマーク コメント 16

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

【C】srand(time(NULL))をしても同じ乱数が生成される

66 users teratail.com

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント16

  • 注目コメント
  • 新着コメント
turanukimaru
昔は rand() を初期化してから使うまでに空回しするというテクニックがあった。例えばゲームの開始時からスタートボタンを押すまでの時間空回しをするとかね。乱数に自信がないときはこれで案外いける。

その他
ginpei
srand(time(NULL))してrand()%7すると同じ結果が続く問題。擬似乱数生成の計算過程でシード値を上下ビットで分けたりマジックナンバーが7^5な都合で、シード値の上位ビットが変化しないとrand()%7が同じに。time()なら35+時間分。

その他
tybalt
数値 16807 については https://en.wikipedia.org/wiki/Lehmer_random_number_generator#Parameters_in_common_use に言及があった

その他
kazuau
日本語版Wikipediaのrandに理由や回避方法や注意点など、大体全部書いてあった

その他
tmtms
面白い / "srand() は正しく機能していて、 rand() も毎回異なる値を出してはいるが、「7 で割った余りの値」は、シード値の与え方を time() にしている限り 35.5 時間経たないと、変わらない"

その他
a96neko
「C言語での乱数生成で常に同じ値となってしまうケースがある」

その他
quick_past
"「7 で割った余りの値」は、シード値の与え方を time() にしている限り 35.5 時間経たないと、変わらない、です。"

その他
zu2
奥が深いなー

その他
kazuau
kazuau 日本語版Wikipediaのrandに理由や回避方法や注意点など、大体全部書いてあった

2022年01月08日 リンク

その他
tmtms
tmtms 面白い / "srand() は正しく機能していて、 rand() も毎回異なる値を出してはいるが、「7 で割った余りの値」は、シード値の与え方を time() にしている限り 35.5 時間経たないと、変わらない"

2022年01月08日 リンク

その他
otoan52
ブコメ、CPUの中の熱雑音を使った乱数生成器の話があった気がする / 対応策としてはシードを乱数にしろ、ということか。乱数は面白い。

その他
skypenguins
メルセンヌ・ツイスタ使えばいいぢゃん(小学生並みの感想)

その他
butyricacid
線形合同法

その他
tybalt
tybalt 数値 16807 については https://en.wikipedia.org/wiki/Lehmer_random_number_generator#Parameters_in_common_use に言及があった

2022年01月07日 リンク

その他
udzura
これは...

その他
n314
"擬似乱数の結果の剰余を使うのが一般的にダメです。"

その他
pwatermark
結果として偶数だか奇数だかが連続しちゃうとか、意外な規則性が出てくることがあるんだよね 乱数とは言え所詮計算で出してるんで CPU温度とかシードに出来ねえかな....w

その他
turanukimaru
turanukimaru 昔は rand() を初期化してから使うまでに空回しするというテクニックがあった。例えばゲームの開始時からスタートボタンを押すまでの時間空回しをするとかね。乱数に自信がないときはこれで案外いける。

2022年01月07日 リンク

その他
iww
面白い。

その他
mohno
そもそもsrandの呼び出しは1回だけにしろ(←よくある初歩的なミスだが)、というのはさておき内部で7の倍数を使っているというのはちょっとな。/「0〜6の乱数を生成して6段階」←7段階だろ。

その他
ginpei
ginpei srand(time(NULL))してrand()%7すると同じ結果が続く問題。擬似乱数生成の計算過程でシード値を上下ビットで分けたりマジックナンバーが7^5な都合で、シード値の上位ビットが変化しないとrand()%7が同じに。time()なら35+時間分。

2022年01月07日 リンク

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「【C】srand(time(N...」が注目されています。

気持ちをシェアしよう

ツイートする

【C】srand(time(NULL))をしても同じ乱数が生成される

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。... C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ブックマークしたユーザー

  • techtech05212024年05月06日 techtech0521
  • mhag2022年01月10日 mhag
  • a96neko2022年01月09日 a96neko
  • toshiharu_z2022年01月09日 toshiharu_z
  • quick_past2022年01月09日 quick_past
  • paulownia2022年01月08日 paulownia
  • p1ass2022年01月08日 p1ass
  • emmeleia2022年01月08日 emmeleia
  • zu22022年01月08日 zu2
  • agw2022年01月08日 agw
  • pcmaster2022年01月08日 pcmaster
  • kazuau2022年01月08日 kazuau
  • shining-corn2022年01月08日 shining-corn
  • agano2022年01月08日 agano
  • kazkaz032022年01月08日 kazkaz03
  • tmtms2022年01月08日 tmtms
  • Hiro_Matsuno2022年01月08日 Hiro_Matsuno
  • a-hamahama2022年01月08日 a-hamahama
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /