2016-08-23 5 views
-7

std-functionなしで乱数に助けが必要です。どうやってやるの?私は、私のようなランダム機能でそれを行うことができることを知っている:1-35の間の数字をランダム化します標準機能を持たないランダム化数字

v2 = rand() % 36 + 1; 

が、rand()機能「(STDLIB.H)」STDに属します。

+6

をあなたが標準ライブラリを使用できない理由* *説明できますか?それは非常に恣意的な(そして愚かな)制限のように見えます。 – Angew

+0

インターネット上の擬似乱数ジェネレータを探して実装します。 – MikeMB

+3

これは、1と** 36 **の間の整数を生成します。 – rici

答えて

1

私はstackoverflowの上で同様の問題が見つかりました:ここでは、time代わりにrand() ため<stdlib.h>ため<time.h>を使用している

#include<stdio.h> 
#include<time.h> 
int main() 
{ 
    int num = 36; 
    time_t sec; 
    sec=time(NULL); 
     for(;;) 
     { 
      sec=sec%3600; 
      if(num>=sec) 
      { 
      printf("%ld\n",sec); 
      break; 
      } 
      sec=sec%num; 
     } 
    return 0; 
} 

:私は0から35までと最終的なソリューションの間で発生させるために少し変更を加えるHow do I generate random numbers without rand() function?

を0を答えにしたくない場合は、追加することができます

while(sec==0) 
{ 
    sec=time(NULL); 
} 
この文の前

sec=sec%3600;

0

あなたは、ハードウェア乱数生成器を使用することができます

#include <iostream> 
#include "immintrin.h" 

int main() 
{ 
    unsigned int val; 
    _rdrand32_step(&val); 
    std::cout << val; 
} 
関連する問題