Как я могу создать один переработчик просмотра в другой просмотрщик Android

Отбраковка выборки (например, в вашем решении) - это первое, что приходит на ум, в результате чего вы создаете таблицу поиска с элементами, заполненными их распределением по весу, а затем выбираете случайное местоположение в таблице и вернуть его. В качестве варианта реализации я бы сделал функцию более высокого порядка, которая принимает спецификацию и возвращает функцию, которая возвращает значения, основанные на распределении в спецификации, таким образом вы избегаете создания таблицы для каждого вызова. Недостатком является то, что алгоритмическая производительность построения таблицы линейна по количеству элементов, и потенциально может быть много использования памяти для больших спецификаций (или те, у которых есть члены с очень малыми или точными весами, например {0: 0.99999, 1 : 0,00001}). Потенциал заключается в том, что выбор значения имеет постоянное время, что может быть желательно, если производительность критическая. В JavaScript:

function weightedRand(spec) {
  var i, j, table=[];
  for (i in spec) {
    // The constant 10 below should be computed based on the
    // weights in the spec for a correct and optimal table size.
    // E.g. the spec {0:0.999, 1:0.001} will break this impl.
    for (j=0; j

Другая стратегия состоит в том, чтобы выбрать случайное число в [0,1) и перебрать весовую спецификацию, суммируя веса, если случайное число меньше суммы, а затем возвращает связанное значение. Конечно, это предполагает, что веса суммируются до единицы. Это решение не имеет начальных затрат, но имеет среднюю алгоритмическую производительность, линейную по количеству записей в спецификации. Например, в JavaScript:

function weightedRand2(spec) {
  var i, sum=0, r=Math.random();
  for (i in spec) {
    sum += spec[i];
    if (r <= sum) return i;
  }
}
weightedRand2({0:0.8, 1:0.1, 2:0.1}); // random in distribution...

-2
задан saurabha 16 January 2019 в 07:31
поделиться

1 ответ

Просто добавьте представление переработчика для элемента в держателе просмотра.

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

0
ответ дан Khaled Qasem 16 January 2019 в 07:31
поделиться
Другие вопросы по тегам:

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