Функция для генерации массива случайных чисел без повторов [duplicate]

Попробуйте это,

В функции function.php проверьте эту функцию.

// Change number or products per row to 3
add_filter('loop_shop_columns', 'loop_columns');
if (!function_exists('loop_columns')) {
function loop_columns() {
return 3; // 3 products per row
}
}

Затем ваша дочерняя тема добавляет это,

// Override theme default specification for product # per row
function loop_columns() {
return 5; // 5 products per row
}
add_filter('loop_shop_columns', 'loop_columns', 999);

для подробнее проверьте этот

Надеюсь, что это поможет ..

0
задан Makoto 16 January 2019 в 20:28
поделиться

2 ответа

Похоже, что проблема возникает, если вы случайно выбрасываете повторяющееся число, затем выбрасываете новое число и случайно выбрасываете estratti[0]. Вы устанавливаете j=0, когда вы найдете дубликат, но в следующий раз вы проверяете, находится ли numero==estratti[j] в следующей итерации цикла. К тому времени j был увеличен j++ до 1, поэтому вы пропустите этот случай.

Чтобы исправить это, вы можете установить j = -1, если найдете повторяющийся номер.

0
ответ дан tobias_k 16 January 2019 в 20:28
поделиться

Вы должны использовать структуру хэш-набора и сделать что-то вроде этого непроверенного java-кода:

HashSet set = new LinkedHashSet();
while (set.size() < n) {
    set.add(random.nextInt(delta));
}
return set.toArray();

Метод HashSet.add не добавит значение, если оно уже присутствует. [ 114]

Адаптируйте этот код к вашей ситуации.

0
ответ дан formixian 16 January 2019 в 20:28
поделиться
Другие вопросы по тегам:

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