No.3ベストアンサー
- 回答日時:
○たまたまです。
○ただ、そのrand()関数はそうなる傾向が強いです。
rand()関数で使われている乱数は、正確には「疑似乱数」といって、ただの計算結果です。
「種」を使って「最初の状態」を設定する
↓
「最初の状態」を元に計算して、「乱数」と「次の状態」を求める
↓
「次の状態」を元に計算して、「次の乱数」と「その次の状態」を求める
↓
「そろ次の状態」を元に計算して、「そろ次の乱数」と「さらにその次の状態」を求める
...
とすると、「乱数」がバラバラの値に見えるような計算をしています。
計算しているだけなので、種が同じなら、同じ「乱数」が出てきます。
そこで、実行のたびに種が変わるようにするテクニックの一つが「種に現在時刻をつかう」というものです。 srand(time(NULL)) は、種にtime(NULL)で求めた「現在時刻を秒で表現した値」を使用しています。
種1と種2が違えば、乱数列1と乱数列2がまったく関係無い値になるのが理想です。
が、現実はそうもいきません。
そのrand関数の「計算」では
・種1と種2が近いと、乱数列1と乱数列2も近くなる傾向がある
・特に、下の桁ほどその傾向が強くなる。
という特徴があります。
このプログラムを連続で実行すると
現在時刻が近い
→種が近い
→乱数が近い
→%で下の桁を抜き出しているので、特に傾向が出やすい
となります。
対策としては
・種をtimeそのままではなく、工夫する
・rand() 1回で終了ではなく、複数実行する
・%1000ではなく、 (int)((rand() / ((double) RAND_MAX + 1.0)) * 10000) 等と全体を使うようにする
・rand()以外のアルゴリズムを使用する
等があります
https://ja.wikipedia.org/wiki/Rand
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Java、配列の問題を教えて欲しいです。 ・日、月、火、水、木、金、土 ・各曜日の英語 を2次元配列 2 2023/07/10 19:14
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- 銀行・ネットバンキング・信用金庫 暗証番号無しで出金 2 2023/03/20 10:44
- クレジットカード クレジットカードの暗証番号について質問です。 お店では普段ほとんど使わないクレジットカード(dカード 3 2023/01/05 15:58
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# c言語について 下記の計算結果を出力するコードを記述する問題で 0-4 3.14×2 5÷3 30÷ 5 2022/05/17 22:41
- 数学 これは『通し番号』といいますか? 例として、 ・A地区 ・B地区 ・C地区 からの、苦情受付番号をつ 1 2022/06/30 13:55
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
C言語 重複しない4ケタの乱数 教えてください
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルコマンドの 2>&1 とはど...
-
VC++でUTF-8のファイルを出力し...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
テキストファイルに改行コード...
-
csvファイルでの出力について
-
C++ fprintf_sの使い方がわからん
-
CSV形式に変換
-
コマンド(例えばls)の出力結果...
-
C言語での縦方向のファイル出力...
-
Wordマクロで指定したフォルダ...
-
ファイル出力の場所を指定
-
AccessVBA複数レポート条件毎に...
-
gccによって、BOM付きのUTF-8で...
-
printfだと出力されるのにfprin...
-
ファイル形式またはファイル拡...
-
FORTRANの出力データの左寄せが...
-
カスタマバーコードの印刷
-
BitBltについて。
-
CreateProcess関数と実行後の戻...
-
(VBA)書式が変更されてしまい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VC++でUTF-8のファイルを出力し...
-
コマンド(例えばls)の出力結果...
-
ファイル出力の場所を指定
-
Acccess レポートをグループ別...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
テキストファイルに改行コード...
-
AccessVBA複数レポート条件毎に...
-
ファイルの文字コードをUTF-8に...
-
外国語とCSVについて
-
C言語のプログラムが異常終了し...
-
二次元配列をクリップボードに...
-
printfだと出力されるのにfprin...
-
ファイル形式またはファイル拡...
-
シェルコマンドの 2>&1 とはど...
-
VBA でメモ帳へ保存する際の保...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
サウンド出力のデバイスを選択...
-
Wordマクロで指定したフォルダ...
-
アクセス>マクロ>テキスト変換
-
VB.NETでExcelファイルを出力す...
おすすめ情報