#labview
#labview
Вопрос:
Есть ли способ генерировать случайные числа от 0 до 500, но если первое число, например, равно 300, не отклоняться более чем на 20 для следующего? Я не хочу 500, затем 0, затем 399, затем 1. Спасибо.
Комментарии:
1. Тогда вам вообще не нужны случайные числа. Случайные числа не соответствуют правилам, например, я не хочу 500, затем 0, затем 399, затем 1 ` или * Я не хочу дубликатов , потому что случайные числа случайны, и допустимая последовательность вполне может быть
500, 0, 399, 1, 0, 500
.2. @KenWhite Я думаю, вы что-то пропустили. В этом вопросе нет ничего плохого, кроме того, что он немного тривиален
Ответ №1:
Просто подключите первое случайное число обратно к встроенному VI «Случайное число (диапазон)».
Бонус Используйте регистр сдвига, чтобы найти новое случайное число в диапазоне от последнего случайного числа:
Комментарии:
1. Имейте в виду ситуацию, когда 1-е случайное число будет равно 499, а затем следующие случайные числа могут быть больше 500 🙂 То же самое относится к нижнему пределу.
Ответ №2:
Предыдущий ответ относится к использованию минимальной версии LabVIEW 2019.
Числовая библиотека OpenG имеет аналогичную функцию для генерации случайных чисел в указанном диапазоне и поддерживает более ранние версии LabVIEW.
Кроме того, на основе описания задачи — если я правильно понял — в любом случае случайные числа должны находиться в диапазоне от 0 до 500; поэтому нам нужно дополнительно проверить, не приведет ли смещение /- 20 к «переполнению» числа.
Позвольте мне приложить фрагмент решения, которое его реализует. Обратите внимание, что функции выбора, которые я использовал, просто для того, чтобы показать весь код в одном фрагменте (вместо того, чтобы иметь регистровую структуру со страницами).