読み方:あーるえーえぬでぃー
《Research and Development Corporation》米国のランド研究所。国防に関連ある分野を研究する米国政府系のシンクタンク。1946年設立。本部は、カリフォルニア州サンタモニカ。
<?php
echo rand() . "\n";
echo rand() . "\n";
echo rand(5, 15);
?>
上の例の出力は、たとえば
以下のようになります。
7771
22264
11
出典: フリー百科事典『ウィキペディア(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の実装が生成する乱数列は、問題があるものがほとんどだったことが指摘されている[2]。現代[いつ?]のライブラリでは問題があるものは少なくなっている[要出典]が、標準の規格書で示された実装例があまり良いものではなかったことや、古いライブラリと同じコードが使われ続けているものもまだあることから、注意を要する。
前述の規格書に示された例をはじめ、randの実装に線形合同法が使われていることがあるので、線形合同法の欠点に注意する必要がある。詳細は線形合同法#短所を参照すること。
ライブラリによっては、標準外だがより高品質のrandom、rand48等が用意されていることがある。本格的な用途には、メルセンヌ・ツイスタ等のより良い生成法を検討すべきである。
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の質とは関係なく分布に偏りが発生する方法であり注意が必要である。
|
||||||||||||||||||||
(Rand から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/01/19 14:01 UTC 版)
| アンドロメダ座R星 R Andromedae |
||
|---|---|---|
| 星座 | アンドロメダ座 | |
| 見かけの等級 (mv) | 5.8 - 15.2[1] | |
| 変光星型 | ミラ型[1] | |
| 位置 元期:J2000.0 |
||
| 赤経 (RA, α) | 00h 24m 01.9473999328s[2] | |
| 赤緯 (Dec, δ) | +38° 34′ 37.326131071″[2] | |
| 視線速度 (Rv) | -6.40 km/s[2] | |
| 固有運動 (μ) | 赤経: -17.242 ± 0.491ミリ秒/年[2] 赤緯: -30.066 ± 0.457 ミリ秒/年[2] |
|
| 年周視差 (π) | 4.1281 ± 0.4616ミリ秒[2] (誤差11.2%) |
|
| 距離 | 1,100 光年[注 1] (350 パーセク[3]) |
|
|
アンドロメダ座R星の位置(丸印)
|
||
| 物理的性質 | ||
| 半径 | 440 R☉[4] | |
| 質量 | 1 M☉[4] | |
| 表面重力 | 0.003 G[5][注 2] | |
| スペクトル分類 | S3,5e - S8,8e (M7e)[1] | |
| 光度 | 6,300 L☉[3] | |
| 表面温度 | 2,600 K[4] | |
| 金属量[Fe/H] | -1.00[5] | |
| 他のカタログでの名称 | ||
| BD +37 58, HD 1967, HIP 1901, HR 90, IRC +40009, SAO 53860 | ||
| ■Template (■ノート ■解説) ■Project | ||
アンドロメダ座R星(アンドロメダざRせい、R Andromedae、R And)は、アンドロメダ座にあるミラ型変光星である。ミラ型変光星の中でも、変光の変動幅が非常に大きいものの一つである。スペクトル型はS型に分類され、そのスペクトルには酸化ジルコニウムの吸収帯が目立つ[6]。また、ポール・メリルがS型星のスペクトルからテクネチウムの吸収線を発見した時の観測対象の一つであり、恒星内部で元素合成が起こっている証拠と考えられている[7][4]。アンドロメダ座R星は、SH(水素化硫黄)分子が宇宙で検出された最初の例でもある[8]。質量放出率は高く、一年当たり8 ×10−6太陽質量程度の質量を失っているとみられる[3]。
アンドロメダ座R星は、1859年にボン天文台での観測によって発見されたとみられる[9][10]。アンドロメダ座で最も明るい長周期変光星である[6]。
アンドロメダ座R星は、変光星としてはミラ型に分類され、変光周期は平均で409日であるが、周期には多少の変動がみられ、周期の長さとその次に来る極大時の明るさとの間に、非常に良い相関があることで知られる[11]。変光星総合カタログでは、明るさの変化は5.8等から15.2等となっているが、極大光度は周期毎に変化し、極大時の見かけの等級の平均は6.9等で、9等級程度までしか明るくならなかった極大もある[1][9]。極大光度が明るい時の極小からの変化幅は非常に大きく、9等級以上明るくなることがある[6]。極大光度だけでなく、光度曲線の輪郭も変化する。光度変化は、極小から増光する時の方が、極大から減光する時よりも速い。
アンドロメダ座R星のスペクトルは、S型に分類され、ミラ型星の多くが分類されるM型とは異なる特徴を示す。M型星では、酸化チタン(TiO)分子の吸収帯が非常に顕著であるのに対し、S型星ではTiO分子の吸収帯は弱く、代わって酸化ジルコニウム(ZrO)分子による吸収が強い。また、希土類が豊富に存在する[7]。スペクトル型は、S3,5e - S8,8eとされ、変光に伴うスペクトル型の変化がみられる[1]。",5"や",8"といった表記は、S型星のスペクトルの分類に独特のもので、コンマの後の数字が、ZrO分子吸収帯とTiO分子吸収帯における吸収の相対的な強度を表し、数字が大きい程TiO分子の吸収が弱く、ZrO分子の吸収が強くなっている[12]。また、接尾辞の"e"が示す通り、アンドロメダ座R星のスペクトルには輝線も検出されており、カリウムやルビジウムの共鳴線での輝線が目立つが、変光の周期によっては輝線がみえないこともある[11][13]。
紫外域でのスペクトルは、M型星と大差ないが、テクネチウムの吸収線が強い[7]。近赤外線スペクトルでみられる吸収線の中には、光度極大直後に2つの成分がみられるものがある[14]。2つの成分が示す視線速度は、波長の長い方の成分が、単一の吸収線と同じで、波長の短い方の成分は、それよりもおよそ秒速20km青方偏移している。この速度差は、脈動に伴う光学的に厚い層の運動によるものとみられ、時間が経過すると共に差が小さくなり、やがて1成分に戻る[4][11]。赤外線のスペクトルでは、SH分子の成分が検出され、天体におけるSHの検出はこれが最初の例である。SHがみつかったのは、1977年にキットピーク国立天文台の4m望遠鏡で観測したスペクトルだが、当初SHは気付かれず、2000年の検証で確認された[8][15]。
アンドロメダ座R星は、他のミラ型星と同様に、漸近巨星枝(AGB)星である[3]。AGB星は、主に炭素と酸素からなる核と、外層大気の間に、ヘリウムが燃焼する殻がある。内部ではs過程による元素合成が起こり、汲み上げ効果によって生成された元素が表面に浮上することで、特異な組成を示すAGB星が現れる[16]。AGB星は基本的に、低温で光度が高い赤色巨星で、アンドロメダ座R星の場合、典型的な有効温度が2,600K、光度が太陽の6,300倍と推定される。質量は太陽と同程度だが、半径は太陽の400倍以上に膨張しているとみられる[4][3]。
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/11 06:09 UTC 版)
ランド (通貨) - 南アフリカ共和国の通貨。 ランド研究所(ランド・コーポレーション) - アメリカのシンクタンク。ランド研究所政策大学院 ランド・カンパニー - アメリカの事務用品メーカー。カーデックス・ランド、レミントン・ランド、スペリー・ランド、スペリーを経て、ユニシス(の一部)となった。 RANDライセンス - 標準化プロセスで使用されることが多い特許のライセンス方式。 英語圏の姓アイン・ランド - アメリカの作家。 ジョン・ランド - アメリカの俳優。 アイザック・ランド - イギリスの薬剤師、植物学者。 マリー・ランド - イギリスの陸上競技選手。 ランド (ニュージーランド) - ニュージーランドの競走馬。中山グランドジャンプに出走した。 乱数 (random number) の略。または乱数を返すCの関数 rand。
※この「rand」の解説は、「ランド」の解説の一部です。
「rand」を含む「ランド」の記事については、「ランド」の概要を参照ください。
固有名詞の分類