Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2016, 12:36
Интересующийся
Отправить личное сообщение для UhWhat Посмотреть профиль Найти все сообщения от UhWhat
 
Регистрация: 23.02.2014
Сообщений: 14

Модификация функции random
День добрый всем , подскажите пожалуйста в реализации логики а именно, модифицированной функции random:

Просто есть задача в случайном порядке попарно вывести числа N раз(расположение парных чисел тоже определяется случайным образом, они не следуют друг за другом), где при условии что N всегда чётное число .

И желательно что б функция за один вызов не возвращала массив чисел, а при каждом отдельном вызове возвращала одно число, как это делает функция random.

К примеру :

var n=8 // функция myRandom должна сгенерировать 4 случайные пары чисел
myRandom(n);

for(var i=0; i < n; i++){
alert(myRandom()); // Вывод будет к примеру 6,8,1,8,6,3,3,1
}



Заранее всем спасибо за то что уделили время на прочтение.

Последний раз редактировалось UhWhat, 07.04.2016 в 12:47.
Ответить с цитированием
  #2 (permalink)  
Старый 07.04.2016, 13:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от UhWhat
Вывод будет к примеру 6,8,1,8,6,3,3,1
а потом?
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2016, 13:30
Интересующийся
Отправить личное сообщение для UhWhat Посмотреть профиль Найти все сообщения от UhWhat
 
Регистрация: 23.02.2014
Сообщений: 14

А потом я буду использовать эти числа дальше в программе, мне просто необходимы числа удовлетворяющие этим требованиям как выше.

В целом мне необходимо вывести на экран попарные картинки, всё упёрлось щас в переписывании функции random с заданными , как выше. требованиями
Ответить с цитированием
  #4 (permalink)  
Старый 07.04.2016, 13:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

UhWhat,
что будет если запустить в 9 раз?
Ответить с цитированием
  #5 (permalink)  
Старый 07.04.2016, 13:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

UhWhat,
<script>
Array.prototype.shuffle = function(min,max) {
  min = min || 0;
  max = ++max || this.length;
  var len = max - min;
  max = len - this.length;
  this.length = len;
    for (var a = this.length-1; 0 <= a; a--) {
       if(a < max) {break}
        var b = Math.floor(Math.random() * a),
            c = void 0 === this[b] ? (b + min) : this[b];
            this[b] = void 0 === this[a] ? (a + min) : this[a];
            this[a] = c
    }
    this.reverse();
    this.length -= max;
    return this
};
function myRandom(n) {
    var arr = [],
        i = 0;
    return function() {
        if (i == arr.length) {
            i = 0;
            arr = Array(n / 2).shuffle(0, 9);
            arr = arr.concat(arr.slice()).shuffle()
        }
        var a = arr[i];
        i++;
        return a
    }
};
var s = myRandom(8);
for (var i=0; i<80; i++)  { document.write(s()+""); if(!((i+1) % 8) ) document.write("<br>")}

  </script>
Ответить с цитированием
  #6 (permalink)  
Старый 07.04.2016, 13:50
Интересующийся
Отправить личное сообщение для UhWhat Посмотреть профиль Найти все сообщения от UhWhat
 
Регистрация: 23.02.2014
Сообщений: 14

в условии чётко оговорено что функция будет запускаться строго чётное количество раз, ну а если не чётное то я думаю одно число будет непарным.

Ух, спасибо тебе большое Рони, буду изучать сейчас, тобой написанный код. Спасибо мужик !
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение прототипа функции tsigel Общие вопросы Javascript 11 15.05.2014 01:03
Добавление функции внутрь другой функции Lion_astana jQuery 9 28.12.2013 14:33
Установить имя конструктора Андрей Параничев Общие вопросы Javascript 8 17.11.2011 10:09
динамическое содержимое функции alfmaster Общие вопросы Javascript 2 28.05.2011 17:10
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21