Так что, если я понимаю ваш вопрос, вы хотите два диапазона чисел и переменную определенную вероятность того, что один диапазон будет выбран. Это можно описать математически как функцию плотности вероятности (PDF), которая в этом случае также примет вашу «случайную» переменную в качестве аргумента. Если, например, ваш 7-10 диапазон, более вероятно, чем остальные 1-10 диапазона, PDF может выглядеть примерно так:
One PDF, такие как плоские распределения может быть преобразован в другой через функцию преобразования, которая позволит вам генерировать равномерно случайное число и преобразовывать его в собственную функцию плотности. См. Здесь для строгой математики: http://www.stat.cmu.edu/~shyun/probclass16/transformations.pdf
Но поскольку вы пишете программу, а не математический тезис, я предлагаю, чтобы самым простым способом было просто сгенерировать два случайных числа. Первый определяет, какой диапазон использовать, а второй генерирует число в пределах выбранного вами диапазона. Имейте в виду, что если ваши диапазоны перекрываются (очевидно, 1-10 и 7-10), то область перекрытия будет еще более вероятной, поэтому вы, вероятно, захотите сделать свои диапазоны эксклюзивными, чтобы вы могли более легко управлять вероятностями. Вы не сказали, какой язык вы используете, но вот простой пример в Python:
import random
range_chance = 30 #30 percent change of the 7-10 range
if random.uniform(0,100) < range_chance:
print(random.uniform(7,10))
else:
print(random.uniform(1,7)) #1-7 so that there is no overlapping region
Какой язык программирования вы используете? У Python есть случайная библиотека, и вы можете использовать random.randint (1,10) для первой части вашего вопроса. Что вы имеете в виду, когда говорите «диапазон с процентным шансом 7-10»? –
Можете ли вы показать, что вы пробовали до сих пор? И какой язык вы используете? –
Вы это проясните? –