Задать вопрос
sakrab
@sakrab
Не будь побежден злом, но побеждай зло добром...

Рандом 4-х значного числа?

Привет. Как получают рандом 4-х значного числа в 2015 году?

Мне надо чтоб программа записывала в переменную 4-х значное число неодинаковых значений! т.е. 1234, 3456 и так далее.... 2234 Ошибка (2 одинаковых числа)

var x = Math...... //или другое волшебство
document.write(x)


В Python все легко и просто:
cash = list(range(10))
random.shuffle(cash)


Спасибо.
  • Вопрос задан
  • 760 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 3
Stalker_RED
@Stalker_RED
jsfiddle.net/f120r6dq

Если ноль в начале нельзя, то
jsfiddle.net/e5od40bm
Ответ написан
Комментировать
@kapitan7830
Если навскидку, то как-то так
function getRandomFunction() {
  var nums = {};
  return function() {
    var min = 1000;
    var max = 10000;
    var randomNum = Math.round( Math.random() * (max - min) + min );
    try {
      if ( nums[randomNum] ) return getRandom();
      nums[randomNum] = true;
    } catch(err) {
      return 'Все числа использованы!';
    }
    return randomNum;
  }
}
var getRandom = getRandomFunction();
alert( getRandom() );


Хотя для этой задачи рекурсия не очень хорошо подходит
Ответ написан
@amatory10
var max = 10000, min = 1000;
Math.round(Math.random() * (max - min) + min)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@OKF
function randomInteger(min, max) {
    var rand = min + Math.random() * (max + 1 - min);
    rand = Math.floor(rand);
    return rand;
}

function randomSet(n) {
  var str = '0123456789',
      num = '';

  for (var i = 0; i < n; i++) {
    var j = randomInteger(0, str.length - 1);
    num += str[j]
    str = str.slice(0, j) + str.slice(j+1);
  }
  return num;
}


jsfiddle.net/mq215t3v
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы