2016-10-29 3 views
4

Я новичок в использовании BigInteger, поэтому я стараюсь лучше всего читать документацию. Я все еще смущен. Мне нужно создать 500 случайных чисел между диапазоном 2^70 и 2^80, и я не знаю, как установить диапазон для BigIntegers.Создание случайных уникальных BigIntegers в заданном диапазоне?

Я получаю возможные дубликаты сообщений, так что я думаю, я должен добавить, что я уже смотрел на решения в этом, и до сих пор не понимаю, как решить мою проблему: How to generate a random BigInteger value in Java?

+0

Возможный дубликат [Как создать случайное значение BigInteger в Java?] (Http://stackoverflow.com/questions/2290057/how-to-generate-a-random-biginteger-value-in-java) Я думаю, этот вопрос должен ответить на ваш вопрос. – DonyorM

+0

Возможный дубликат: http://stackoverflow.com/questions/2290057/how-to-generate-a-random-biginteger-value-in-java –

ответ

1

Eсть a built-in method to generate a random BigInteger между 0 и 2^n - 1.

Вы можете использовать это в цикле для генерации чисел до 2^80.

Шанс, что число упадет ниже 2^70, очень мало (~ 0,1%). Если это произойдет (и с 500 итерациями это может быть очень хорошо), просто нарисуйте еще один.

Это даст вам равномерное распределение случайных чисел между 2^70 и 2^80.

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

+0

Возможно ли установить минимальное значение диапазона? Для случая моего назначения он должен быть установлен в пределах определенного диапазона. – Jasmine

+1

Каков минимальный диапазон? Если это 2^70, то выше будет работать очень хорошо. Если это 2^78, лучше используйте другой метод, например http://stackoverflow.com/a/23054579/14955. – Thilo

Смежные вопросы