매일 임의의 정수 값을 생성하는이 코드를 만들었습니다. 그래서 오늘 rand()는 내가 호출 할 때마다 3을 반환 할 것이고, 내일은 다른 값을 생성합니다. C++ 임의의 주간 정수를 생성하는 방법
std::vector<MyObject> myList = getMyList();
time_t t = time(NULL);
tm *lt = localtime(&t);
int seed = lt->tm_mday + lt->tm_mon + 1 + lt->tm_year + 1900;
srand(seed);
dailyRand=rand();
int selectedID=rand() % myList.size();
MyObject obj = myList.at(selectedID);
지금 내가 대신 매주 랜드를 생성하기 위해 노력하고있어,하지만 다음 때까지, 00:00 화요일에 변경하고 전체 주 동안 동일하게 유지.
불행히도 아직 해결책을 찾지 못했습니다. 누군가 나를 도울 수 있습니까?
UPDATE :
내 시도 (그리고 아마도 솔루션?) : 그것은 1990년 1월 1일은 월요일과 내가 필요했다 +1 때문 년 0 (이후의 일 수를 얻어야한다
seed = trunc((lt->tm_yday + (lt->tm_year * 365)+1)/7);
srand(seed);
rand();
대신 화요일), 7로 나누면 화요일부터 시작하여 1900 년부터 주 번호를 알려줘야합니다. 하지만 난 어떤 값을 시도하고
업데이트 2 : 나는 당신이 특정 시간에 따라 변하는 값을 찾고 있습니다
time_t t = time(NULL);
tm *lt = localtime(&t);
int firstTuesday = 432000; // Tuesday 1970/01/06 at 00:00
int seed = (((t - firstTuesday)/60/60/24))/7;
srand(seed);
int r=rand();
"_i가 해결책을 찾지 못했습니다." "적어도 뭔가 해봤습니까? 귀하의 필요에 부합하지 않는 이유에 대한 설명과 함께 귀하의 시도를 보여주십시오. –
주간 솔루션을 확장 할 때 어떤 문제점이 있습니까? –
http://idownvotedbecau.se/noattempt/ – Oleg