-2

私は、次のことを行うアプリケーションをコーディング中です。

  1. 4 桁の乱数を生成します。
  2. 1 暦日に 1 回変更します。
  3. その日は変わりません。一日に一度だけ。

私は試した:

function my_doubt()
 {
   var place = document.getElementById("my_div")
   place.innerHTML=Math.floor((Math.random()*100)+1);
 }

で乱数を取得していMath.random()ます。ただし、毎日異なる数値を生成する方法については、私はかなり無知です。この問題に取り組むための一般的なアプローチは何ですか?

注:本当にランダムである必要はありません。疑似乱数でもOKです。

4

4 に答える 4

4

乱数ジェネレーターに、現在の日付から派生した数値をシードする必要があります。たとえば、今日は「20130927」です。

于 2013-09-27T05:40:18.353 に答える
0

これで、あなたの質問はもう少し合理的で、明確で、口調が良くなりました。クライアント側で同じ結果を得る方法を教えてください。ただし、他の人が述べたように、一貫性を維持するために、おそらくサーバー上で番号を維持して一貫性を確保する必要があります。

var oneDayInMs = 1000*60*60*24;
var currentTimeInMs = new Date().getTime();  // UTC time
var timeInDays = Math.floor(currentTimeInMs / oneDayInMs);
var numberForToday = timeInDays % 9999;
console.log(numberForToday);
// zero-filling of numbers less than four digits might be optional for you
// zero-filled value will be a string to maintain its leading 0s
var fourDigitNumber = numberForToday.toString();
while(fourDigitNumber.length < 4)
{
  fourDigitNumber = 0+fourDigitNumber;
}
console.log(fourDigitNumber);

// remember that this number rotates every and is unique for 10000 days
于 2013-09-27T14:31:21.253 に答える