2014-08-29 2 views
1

rand()을 사용하여 100과 149 사이의 2 개의 임의의 정수를 인쇄하는 두 개의 명령문을 입력하십시오. 줄 바꿈으로 끝납니다. 예 :100과 149 사이의 임의 숫자의 고정 범위

101 
133 

내가 해봤 ...

cout << rand() % 100 << endl; 
cout << rand() % 149 << endl; 

... 그리고이 동작하지 않습니다.

나는 혼란 스럽다. 어떤 도움을 주시면 감사하겠습니다!

+1

'(랜드() % 49) + 100'? –

+3

'(rand() % 50) + 100'은 포함하는 것이 더 좋을 것입니다. – HuStmpHrrr

+0

신경 쓰지 마세요! 그것을 알아 냈어! 혼란스러워이 문제를 우연히 목격 한 사람은 누구에게나 있습니다. 다만 변경 성공없이 두 문장을 입력 !! COUT << 랜드 ((149 - - 100 + 1) + 100) COUT << 랜드 (100 + 1) + 100 (149) 다음의 형식이다 : - COUT << 랜드 ((N2 - N1 + 1) + N1) N1 = 100, N2 = 149 COUT << 랜드 (N1 + 1) + N1 (N2) –

답변

5

Don't use(rand() % 50) + 100 균일하게 배포하려는 경우 <random> 헤더에서

사용 std::uniform_int_distribution :

#include <random> 
#include <iostream> 

int main() 
{ 
    std::random_device rd; 
    std::mt19937 gen(rd()); 
    std::uniform_int_distribution<> dis(100, 149); 

    for (int n=0; n<2; ++n) 
     std::cout << dis(gen) << ' '; 
    std::cout << '\n'; 
} 

Live demo