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번째는 그런 자료형이 없으니, 숫자를 문자로 처리하시면 됩니다.