Почему медленное внедрение WADL? [закрытый]

Создайте перестановку из 100 чисел, а затем выберите последовательно.

Использовать Переключение Knuth (так называемый Shuffle Fisher-Yates) Алгоритм .

JavaScript:

  function fisherYates ( myArray,stop_count ) {
  var i = myArray.length;
  if ( i == 0 ) return false;
  int c = 0;
  while ( --i ) {
     var j = Math.floor( Math.random() * ( i + 1 ) );
     var tempi = myArray[i];
     var tempj = myArray[j];
     myArray[i] = tempj;
     myArray[j] = tempi;

     // Edited thanks to Frerich Raabe
     c++;
     if(c == stop_count)return;

   }
}

CODE COPIED FROM LINK.

EDIT:

Улучшенный код:

function fisherYates(myArray,nb_picks)
{
    for (i = myArray.length-1; i > 1  ; i--)
    {
        var r = Math.floor(Math.random()*i);
        var t = myArray[i];
        myArray[i] = myArray[r];
        myArray[r] = t;
    }

    return myArray.slice(0,nb_picks);
}

Потенциальная проблема:

Предположим, что у нас есть массив из 100 чисел {например [1,2,3 ... 100]}, и мы прекращаем замену после 8 свопов; то в большинстве случаев массив будет выглядеть как {1,2,3,76,5,6,7,8, ... цифры здесь будут перетасованы ... 10}.

Поскольку каждое число будет сменяться с вероятностью 1/100. обмена первых 8 чисел составляет 8/100, тогда как проблема. из-под замены 92 - 92.

Но если мы будем запускать алгоритм для полного массива, то мы уверены (почти), что каждая запись обменивается.

В противном случае мы сталкиваемся с вопросом: какой 8 номеров на выбор?

28
задан Allain Lalonde 17 January 2009 в 03:41
поделиться

1 ответ

Я думаю главная причина, почему WADL не завоевывает популярность, то, что это могло бы привести все в чувство те проблема, которую мы имели с SOAP и WSDL. Мне аспектом совместимости является единственный самый важный аспект веб-сервисов.
следующим УСПОКОИТЕЛЬНЫЙ способ использовать чистые стандарты HTTP Вы получаете совместимость "бесплатно". Как только Вам нужен документ для описания сервисов, будут различные клиентские платформы (или различные платформы серверов), который интерпретирует этот документ по-другому. Как только различные платформы автоматически генерируют код от WADL, необходимо будет иметь дело с проблемами совместимости снова.

отсутствие стандартов является слабостью и силой УСПОКОИТЕЛЬНОГО пути, давайте дадим простому подходу шанс. (даже при том, что мы действительно наслаждаемся автоматической генерацией кода:-))

17
ответ дан Jrgns 14 October 2019 в 11:54
поделиться
Другие вопросы по тегам:

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