rand
「rand」の意味・「rand」とは
「rand」は、南アフリカ共和国の公式通貨である。1961年に南アフリカ共和国が英連邦から脱退し、共和制を採用した際に、それまでの通貨であった南アフリカ・ポンドから「rand」へと移行した。その名前は、南アフリカの金鉱山地帯であるウィットウォータースランド(Witwatersrand)から取られている。「rand」の発音・読み方
「rand」の発音は、IPA表記では/rænd/となる。IPAのカタカナ読みでは「ランド」となり、日本人が発音するカタカナ英語では「ランド」が近い。この単語は発音によって意味や品詞が変わる単語ではない。「rand」の定義を英語で解説
「rand」は、"the basic monetary unit of South Africa, equal to 100 cents"と定義される。つまり、南アフリカの基本的な通貨単位であり、100セントが1ランドに相当する。「rand」の類語
「rand」の類語としては、他の通貨名が挙げられる。例えば、「dollar」、「yen」、「euro」などが該当する。これらはそれぞれアメリカ、日本、ヨーロッパ連合の基本的な通貨単位である。「rand」に関連する用語・表現
「rand」に関連する用語としては、「exchange rate」、「currency」、「inflation」などがある。「exchange rate」は通貨の交換レートを指し、「currency」は通貨そのものを指す。「inflation」はインフレーション、つまり物価の上昇を指す用語であり、これらは全て「rand」が使われる経済の文脈で頻繁に登場する。「rand」の例文
以下に、「rand」を用いた例文を10個挙げる。 1. The rand is the currency of South Africa.(ランドは南アフリカの通貨である。)2. The exchange rate between the dollar and the rand fluctuates daily.(ドルとランドの為替レートは日々変動する。)
3. The inflation rate in South Africa has affected the value of the rand.(南アフリカのインフレーション率がランドの価値に影響を与えている。)
4. The rand is subdivided into 100 cents.(ランドは100セントに細分化される。)
5. The rand was introduced in 1961.(ランドは1961年に導入された。)
6. The name "rand" was derived from the Witwatersrand.("ランド"という名前はウィットウォータースランドから派生した。)
7. The rand has experienced periods of volatility.(ランドは変動の期間を経験してきた。)
8. The strength of the rand depends on various economic factors.(ランドの強さはさまざまな経済要因に依存する。)
9. The rand is used not only in South Africa but also in neighboring countries.(ランドは南アフリカだけでなく、隣接する国々でも使用されている。)
10. The value of the rand has been influenced by global economic trends.(ランドの価値は世界的な経済の動向に影響を受けている。)
アール‐エー‐エヌ‐ディー【RAND】
読み方:あーるえーえぬでぃー
《Research and Development Corporation》米国のランド研究所。国防に関連ある分野を研究する米国政府系のシンクタンク。1946年設立。本部は、カリフォルニア州サンタモニカ。
ランド【(アフリカーンス)rand】
rand
rand — 乱数を生成する
説明
int rand ( [int min, int max] )オプションの引数 min,max を省略してコールした場合、rand() は 0 と RAND_MAX の間の擬似乱数(整数)を返します。 例えば、5 から 15 まで(両端を含む)の乱数を得たい場合、 rand(5,15) とします。
例 1059. rand() の例
<?php
echo rand() . "\n";
echo rand() . "\n";
echo rand(5, 15);
?>
上の例の出力は、たとえば 以下のようになります。7771 22264 11
注意: (Windows のような)いくつかのプラットフォームでは、RAND_MAX は 32768 と小さな値となっています。 32768 より広い範囲にしたい場合、 min および max を指定することで、 RAND_MAX より大きな範囲の乱数を生成することができます。 もしくは、 mt_rand() をかわりに使用してみてください。
注意: PHP 4.2.0 以降、 srand() または mt_srand() によりランダム数生成器にシードを与える必要はありません。 これは、この処理が自動的に行われるためです。
注意: 3.0.7 より前のバージョンでは、max の意味は range でした。これらのバージョンにおいて 同じ結果を得るために簡単な例を示すと、 5 から 15 までの乱数を得たい場合には rand (5, 11) とする必要があります。
srand()、 getrandmax() および mt_rand() も参照ください。
Rand
rand
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/10/10 16:30 UTC 版)
Jump to navigation Jump to searchrandは、引き続く呼び出しが擬似乱数列を返すような関数に付けられる名前である。ランド、ランダムと呼ばれている。以下、主に標準Cライブラリのそれについて説明する。
概要
以下、基本的にC99に従う。
C言語のヘッダーファイル stdlib.h で宣言されている、0以上かつ定数RAND_MAX
以下(数学で使う「以上」「以下」であり両端を含む)の整数値を返す関数である。標準ではマルチスレッドについて触れられておらず、POSIXではスレッドセーフに実装することを要求していない[1]。
また、標準は、randが生成すべき乱数列の品質など、乱数列の乱数性については何も言及していない。当然移植性は保証されない。
初期化
randの引き続く呼び出しが返す乱数列はsrandで初期化される。srandを呼び出さずにrandを使った場合は、最初に引数を1としてsrandを呼び出した場合と同じように動作しなければならない。srandに相当するステートメントが、一部のBASICでRANDOMIZEという名前であったためランダマイズと呼ばれることもあるが、「乱数シード (種子)」を与えているだけで、何かをランダムにしているわけではない。
実行ごとに異なる乱数列を生成するために、簡便な手法としては時刻などが使われる(後述のコード例を参照)。暗号などの応用では外部から予測が不可能(ないし十分に困難)な方法を使わなければならない。逆に、シミュレーションを再現するなどの用途では、同じ乱数シードを使用して同じ乱数列を返すようにする。
srandは乱数列に種子を与え初期化するものであるから、randを使用する度にsrandを呼んだりするのは、誤った用法である。
randの問題点
古いrandの実装が生成する乱数列は、問題があるものがほとんどだったことが指摘されている[2]。現代[いつ?]のライブラリでは問題があるものは少なくなっている[要出典]が、標準の規格書で示された実装例があまり良いものではなかったことや、古いライブラリと同じコードが使われ続けているものもまだあることから、注意を要する。
前述の規格書に示された例をはじめ、randの実装に線形合同法が使われていることがあるので、線形合同法の欠点に注意する必要がある。詳細は線形合同法#短所を参照すること。
ライブラリによっては、標準外だがより高品質のrandom、rand48等が用意されていることがある。本格的な用途には、メルセンヌ・ツイスタ等のより良い生成法を検討すべきである。
srandとシードの問題点
srand()にtime()等で得た現在時刻 (秒単位) を渡して初期化する方法はよく見かけるが、srandの実装によってはシード値が近いとrandによって生成される乱数も相関性の高い値が出力されるものがある。つまり下記例のような実装方法を採るプログラムを起動してから数秒後に同じプログラムを起動すると最初のうちは同じ乱数列を得る可能性が高い。これを回避するためにはtimeで得た値をハッシュ関数に通してからsrandに渡す、もしくはsrandを呼び出した後のrandは数十〜数百回読み飛ばすなどの対策が必要である。また言うまでもなく同じロジックを採用したプログラムが同一時刻に起動されるなどしてsrandが同一の値で初期化された場合は以降全く同じ乱数列を得ることになる。
形式
#include <stdlib.h>
int rand(void);
void srand(unsigned);
コード例
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int a;
srand((unsigned int) time(0)); /* 現在時刻を取得して乱数シードを初期化する。 */
a = (int)((rand() / ((double) RAND_MAX + 1.0)) * 10); /* [0, 9] の範囲の値のいずれかが返る。 */
printf("%d", a);
return 0;
}
出力結果の例:
8
特定の範囲で乱数を求めたいときにはa = rand() % 10
とする方法も広く知られているが、線形合同法などの下位ビットの乱数としての品質が低い生成法に備えるため、上記のコード例のように上位にあるビットを利用することが推奨されている[3]。とはいえ両コードともrandの質とは関係なく分布に偏りが発生する方法であり注意が必要である。
参考文献
- ^ http://pubs.opengroup.org/onlinepubs/009695399/functions/rand.html
- ^ Random number generators: good ones are hard to find
- ^ Summit, Steve; 北野欽一. “C FAQ 13.16: ある範囲の整数からなる乱数はどうやったら生成することができるか。”. 2017年4月24日閲覧。
外部リンク
- JM Project Linux Library Functions マニュアル –
- Boost Random Number Library - Boost C++ライブラリのひとつ。様々な乱数アルゴリズムを使うことができる。
- Boost Random Number Library (cppll) - cppllによる上記の翻訳
|
rand
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/11 06:09 UTC 版)
ランド (通貨) - 南アフリカ共和国の通貨。 ランド研究所(ランド・コーポレーション) - アメリカのシンクタンク。ランド研究所政策大学院 ランド・カンパニー - アメリカの事務用品メーカー。カーデックス・ランド、レミントン・ランド、スペリー・ランド、スペリーを経て、ユニシス(の一部)となった。 RANDライセンス - 標準化プロセスで使用されることが多い特許のライセンス方式。 英語圏の姓アイン・ランド - アメリカの作家。 ジョン・ランド - アメリカの俳優。 アイザック・ランド - イギリスの薬剤師、植物学者。 マリー・ランド - イギリスの陸上競技選手。 ランド (ニュージーランド) - ニュージーランドの競走馬。中山グランドジャンプに出走した。 乱数 (random number) の略。または乱数を返すCの関数 rand。
※この「rand」の解説は、「ランド」の解説の一部です。
「rand」を含む「ランド」の記事については、「ランド」の概要を参照ください。
「rand」の例文・使い方・用例・文例
固有名詞の分類
- Randのページへのリンク