毎日ランダムな整数値を生成するこのコードを作成しました。 今日、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:
私の試み(そしておそらく解決?):
seed = trunc((lt->tm_yday + (lt->tm_year * 365)+1)/7);
srand(seed);
rand();
1990年1月1日が月曜日だったと私は必要なので、それは年0(+1以降の日数を取得する必要があります代わりに火曜日)、7で割り算すると、火曜日から始まる1900年からの週の数が分かります。 しかし、私はいくつかの値で試してみたと
UPDATE 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