아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
이타치처럼탈주
이타치처럼탈주20.08.24

C++ SRAND 함수 사용법과 큰 숫자 담을 수 있는 방법이 궁금합니다.

1. srand 사용법이 궁금합니다. 현재 하단과 같이 rand 함수를 세팅해서 시간이 바뀔 때마다 랜덤한 문자가 나오도록 하고 싶었는데, 계속 같은 문자열만 출력됩니다. 왜 그런건가요?

time_t seed;
time(&seed);
srand((unsigned int)seed);

2. 2의 512 승 이상의 값에서 랜덤한 숫자를 뽑아오고 싶습니다. 그런데 애초에 2의 512승을 담을 자료형이 존재하지 않아 어떻게 해야할지 막막합니다.

답변 미리 감사합니다.

55글자 더 채워주세요.
답변의 개수2개의 답변이 있어요!
  • (2) 2의 512 승 이상의 값에서 랜덤한 숫자를 뽑아오고 싶습니다. 그런데 애초에 2의 512승을 담을 자료형이 존재하지 않아 어떻게 해야할지 막막합니다.

    라고 질문을 하셨죠?

    너무 어렵게 생각하지 마세요 .

    코딩은 문제가 안풀릴때 쉽게 생각하면 됩니다

    우선 2^512 의 자리수를 계산합니다

    자리수가 160이라고 한다면?

    for 문이나 while 문을 사용하여 rand 를 160번이상 호출하여 특정 문자열에 저장을 해줍니다

    그리고 string 명령으로 150글자 이상부터 나머지 문자열을 가져온후

    그걸 숫자로 변환해줍니다

    그러면 님의 원하시는 결과값을 가져올 수 있습니다^^


  • 안녕하세요

    time_t seed; time(&seed); srand((unsigned int)seed);

    에서 time은 시간을 가져오는 역할을, srand는 rand함수의 seed를 초기화하는 역학을 합니다.

    아래와 같이 해보시기 바랍니다.

    for(int i = 0;i < 10;i++){ srand((unsigned int)time(NULL)); int num = rand(); cout << num << endl; }

    2번째는 그런 자료형이 없으니, 숫자를 문자로 처리하시면 됩니다.