Создание случайного числа, кратного 10 - PullRequest
3 голосов
/ 04 марта 2011

Я хочу создать случайное число между двумя диапазонами, кратное 10.

Например, если бы я передал функции параметры 0, 100, он бы возвратил одно из этих чисел:

0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

но ничего подобного 63 или 55.

И да, я знаю, что это побеждает точку истинной "случайности", но мне просто нужен быстрый простой способполучить число, кратное 10 между двумя диапазонами.

Спасибо.:)

Ответы [ 7 ]

8 голосов
/ 04 марта 2011

Я думаю, это может помочь:

var randomnumber=Math.floor(Math.random()*11)*10
6 голосов
/ 04 марта 2011

это всего одна строка:

function rand_10(min, max){
    return Math.round((Math.random()*(max-min)+min)/10)*10;
}
0 голосов
/ 26 ноября 2013
function rand(maxNum, factorial) { 
    return Math.floor(Math.floor(Math.random() * (maxNum + factorial)) / factorial) * factorial; 
};

Принимает два параметра

  • maxNum Максимальное число, генерируемое в случайном порядке
  • factorial Факториал / инкрементное число

    1. умножает сгенерированное случайное число на maxNum.
    2. округляет результат.
    3. Делит на факториал.
    4. округляет результат.
    5. затем умножается снова на факториал.
0 голосов
/ 04 марта 2011
var a = 67;
var b = 124;
var lo = a + 10 - (a % 10) 
var hi = b - (b % 10)
var r = lo + 10 * parseInt(Math.random() * ((hi - lo)/10 + 1));
0 голосов
/ 04 марта 2011

Это, кажется, делает работу

Math.floor(Math.random() * 10) * 10

Если вы немного измените это, вы можете легко сделать это между любыми двумя числами.

0 голосов
/ 04 марта 2011
  1. Возьмите разницу двух параметров.
  2. Разделите разницу на 10.
  3. Генерирует случайное число от 0 до результата деления.
  4. Умножьте это на 10.

НТН.

0 голосов
/ 04 марта 2011

Используйте обычную функцию случайных чисел, такую ​​как this :

function GetRandom( min, max ) {
    if( min > max ) {
        return( -1 );
    }
    if( min == max ) {
        return( min );
    }

    return( min + parseInt( Math.random() * ( max-min+1 ) ) );
}

Так как при этом будут возвращаться только целые числа («кратные 1»), вы можете умножить на 10 и получить только кратные 10.

randomNumberMultipleOfTen = GetRandom(0,10) * 10;

Конечно, вы можете объединить обе функции в одну, если хотите, я оставлю это вам как упражнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...