No.3ベストアンサー
- 回答日時:
「乱数」には、2種類あって
本当の「乱数」と、実は計算しているだけの「疑似乱数」です。
例えば。
サイコロを転がすとき、転がす人の持ち方、投げ方、転がす場所...などなど、いろんな要素が絡んで、投げるたびに違う値になります。
予想することができません。
こういうのが本当の乱数です。
こういう乱数を使うことは、「決まった計算を正確に繰り返す」ことを求められるコンピュータにとっては、非常に難しいことです。
例えば
3 4 0 5 7 10 9 2 8 6
これ、ばらばらの数字に見えて、実は
(3 × 7 + 5) ÷ 11 = 26 ÷ 11 = 2 余り 4 → この4を採用
(4 × 7 + 5) ÷ 11 = 33 ÷ 11 = 3 余り 0 → この0を採用
(0 × 7 + 5) ÷ 11 = 5 ÷ 11 = 3 余り5 → この5を採用
...
と同じ計算で求めています。こういう、計算で求めてはいるものの、乱数と言っていいような性質を持ったものを「疑似乱数」と言います。
「決まった計算を正確に繰り返す」ということで、コンピュータでは簡単なことです。
このとき、最初の状態を表わす値を種 と言います。
種が同じで、計算方法が同じなら、出てくる乱数も同じになります。
そこで、ゲーム等のように、同じ乱数が出てきては困る場合は、毎回変わるような値を種に使います。
例えば、現在時刻とか。
> 例えば、ゲームがあるとしてPCとPS3で違うプラットフォームでも同じゲームなら決まったパターンの乱数から影響受けるのでしょうか?
一概に言えません。
同じ種の選び方、同じ計算方法を使っていたら、同じになります。
逆に言えば、これらが違えば乱数も違います。
プラットフォームを移行する際に、乱数発生部まで同じものを使うのか、新たに作るのか、ゲームによるでしょう。
良くわかりました。
現実で起こりうる事、アナログ的な条件などから導かれるのが本来の数学的な乱数という事ですね。
コンピューターは正確な条件に基づいて求めるモノを算出してるので実際のようなランダムな決定は逆に再現が難しのですね。
>そこで、ゲーム等のように、同じ乱数が出てきては困る場合は、毎回変わるような値を種に使います。
例えば、現在時刻とか。
コンピューターでは組み合わせる要因によって変化を付けるのが、この”乱数”に値すると言うのが分かりました。
2人とも大変分かりやすく解説下さり助かりました。
No.2
- 回答日時:
> 乱数は何の部分を決定しているのですか?
ランダムにする必要のある部分です。
例えば、
・Windows付属のマインスイーパーやソリティアの初期配置
・スライドショーをランダムに表示する場合の表示順
・スクリーンセーバーのラインアートやリボンの表示内容
・ペイントのエアブラシのドットの散布
など。
> また、媒体の違いでも何か違いますか?
媒体とは、一般的にCD-ROMやUSBメモリなどのメディアの種類を指します。
これが違っても、通常は乱数の発生に影響を与えません。
> PC、PS3など(ゲーム機)、スマホなどの端末。
プログラムの動作するOSやプラットフォームが違えば、乱数の発生に影響のある可能性はありますが、同じアルゴリズムや乱数のタネ(seed)だと、同じ系列の乱数が発生します。
> 理解できるか分かりませんが、それらを知っている事で何か役に立つ事はありますか?
ゲームの攻略なんかには、使われる事があるかも。
上の例だと、例えばマインスイーパーは、ゲームをスタート(F2)した際の時刻(秒単位)をタネにして乱数を発生するようなので、PCの時計を調整して同じ時刻にゲームスタートするようにすると、同じ配置になるっぽいです。
この回答への補足
プログラムの動作するOSやプラットフォームが違えば、乱数の発生に影響のある可能性はありますが、同じアルゴリズムや乱数のタネ(seed)だと、同じ系列の乱数が発生します。
例えば、ゲームがあるとしてPCとPS3で違うプラットフォームでも同じゲームなら決まったパターンの乱数から影響受けるのでしょうか?多分そういう事?
neKo_deuxさん 回答有難うございます。
媒体とは、一般的にCD-ROMやUSBメモリなどのメディアの種類を指します。
これが違っても、通常は乱数の発生に影響を与えません。
媒体(^^; そうでしたW 書いてる時は気づいてませんでした。ハードでしたね、何で気づかなかったんでしょうW。
最初の回答者さんの解説と合わせて大体理解しました。
画像も付けてもらって有難いです。
No.1
- 回答日時:
乱数を一言で言い表すと「サイコロ」です。
サイコロを振れば数字が出ますが、その数字は常に同じとは限りません。
つまり、結果が常に同じになるとは限らない数字を出すために使うのが乱数です。
そのため、乱数は決定よりは主にゲーム等でランダム要素を出すために使われます。
例えば能力成長系アイテムを利用した際、毎回同じ結果になってはそのアイテムを溜め込めば良いという事になります。
それでは面白みがないので、常に同じ結果が出るとは限らないように乱数を利用して変動幅を変えているのです。
他にもパチンコやパチスロの当たり判定にも乱数が使われています。
これは一定の周期で常に特定の数値が出ると大当たりを狙い撃ちすることが可能になりますが、これではそういう術を知らない客は不利になりますし、なによりパチンコ屋を営業する業者が困ります。
よって、狙い撃ちできないようにランダムな結果を出すために乱数を利用しているのです。
乱数によって出された数字が大当たりの数字と合致していたら大当たり、違っていたらハズレというわけです。
乱数が媒体によって異なるかどうかですが、これについては媒体よりも内部で使われる演算装置(CPU)やプログラミングの仕方、乱数の使われ方によって異なると答えるしかありません。
例え同じハード、同じセーブデータを利用し、判定のタイミングを常に同一にすれば結果が同じになるとはいえないのが乱数ですから、媒体によって結果が異なるのは当たり前の話になるでしょうね。
最後に知ってて役に立つかどうかとなると…、まぁ、せいぜい話のタネ程度になるという程度です。
nosamajinさん、時間を割いて頂き有難うございます。
なるほど、プログラムとは違いましたね。
>乱数によって出された数字が大当たりの数字と合致していたら大当たり、違っていたらハズレというわけです。
ロト6の抽選みたいなものと理解してよいですね、スッキリしました。
>最後に知ってて役に立つかどうかとなると…、まぁ、せいぜい話のタネ程度になるという程度です。
いいえ、解説頂き有り難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
- Windows 10 Windows Updateの更新ができない場合に初期化 3 2023/01/18 20:00
- docomo(ドコモ) 去年の12月ドコモでiPadを購入したのですが実際殆んど使う事がありません。 分割払いと基本料金を払 2 2023/06/03 09:19
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Windows 10 Windows10無限ループの対策である更新プログラムのアンインストールのパスワードが分からない。 1 2023/02/03 22:50
- C言語・C++・C# チャットGPT 4について質問があります。 画像のような3つの種類がありますが、それぞれ何が違うので 1 2023/04/29 03:12
- その他(スマートフォン・携帯電話・VR) “スマホ” は、何が出来るんだ? 4 2022/04/13 20:12
- 格安スマホ・SIMフリースマホ IIJmio 速度遅く解約する場合 3000円くらいかかる? 3 2022/09/01 20:19
- タブレット ユーチューブのライブ配信に必要なPCのスペックについて 1 2022/06/29 05:16
- Android tar.ファイルのインストールについて知りたいです 2 2022/07/23 15:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語の課題で、1年の秒数を計...
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
Excel VBAにてFFT
-
EXCELなどで「返す」という表現
-
加速度から変位の変換について
-
CとFORTRANの計算速度はどちら...
-
CRC8を教えてください
-
2進数の乗算をc言語で計算した...
-
Java 電卓の連続計算
-
matlab計算での進捗状況を知りたい
-
matlabで計算終了
-
C言語のプログラミングの問題で...
-
等高線を計算したい
-
FORTRANで>>
-
バッチファイルでウインドウを...
-
C# 計算処理中に実行中ウィン...
-
太陽の位置計算のプログラムを...
-
四則演算プログラム(入力式の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
バッチファイルでウインドウを...
-
モジュラス103の計算とは何でし...
-
傾いた四角形内の範囲の条件式
-
Visual C++でdebugとreleaseで...
-
変化させるセルが変化しない
-
骨折リスク評価のFRAXについて...
-
C# 計算処理中に実行中ウィン...
-
VBAでの勤務時間計算
-
べき乗の計算が遅い理由
-
C言語についてです。 再帰を使...
-
Excel VBAにてFFT
-
数値計算の高速化 (cos, sin, exp)
-
VBとVBAの違い
-
VB6で正確なミリ秒を計測したい...
-
スレッド処理からダイアログを...
-
matlabで計算終了
おすすめ情報