15 桁の 2 つの異なる乱数を生成したいと考えています。どうやってやるの
ありがとう
などのほとんどの乱数生成関数arc4random
は、範囲内の数値のみを生成します0 .. 2^32-1 = 2147483647
。15 桁の 10 進数の場合、範囲内の 3 つの数値を計算し、0 .. 10^5-1
それらを「連結」できます。
uint64_t n1 = arc4random_uniform(100000); // 0 .. 99999
uint64_t n2 = arc4random_uniform(100000);
uint64_t n3 = arc4random_uniform(100000);
uint64_t number = ((n1 * 100000ULL) + n2) * 100000ULL + n3; // 0 .. 999999999999999
または、正確に15 桁が必要な場合:
uint64_t n1 = 10000 + arc4random_uniform(90000); // 10000 .. 99999
uint64_t n2 = arc4random_uniform(100000); // 0 .. 99999
uint64_t n3 = arc4random_uniform(100000); // 0 .. 99999
uint64_t number = ((n1 * 100000ULL) + n2) * 100000ULL + n3;
これを試して::
arc4random() は、標準の Objective-C 乱数ジェネレータ関数です。0 から 15 を超える数字が表示されます。0 から 15 までの数値を生成できます (つまり、0、1、2、... 15)。6 桁の乱数は次のようになります。
int number = arc4random_uniform(900000) + 100000;
100000 から 899999 までの乱数が返されます。
それが役に立てば幸い!!
arc4random()
乱数を生成するために達成できる機能を使用します。
これは、についてかなり良いアイデアを提供するリンクarc4random()
です。
これが役立つことを願っています