В книжке Scala
for the Impatient есть удивительная задачка:
… produce a random
BigInt and convert it to base 36,
yielding a string
such as 'qsnvbevtomcj38o06kul' ...
Удивительна
она не тем, что надо как-то сгенерить
рандомный BigInt, или перевести его из
base2 (or base10) в base36. Удивительна она тем,
что масса народу дает неправильный
(очевидно неправильный) ответ.
Просто загуглите
и почитайте. Самый распространенный
ответ:
BigInt.probablePrime(100, util.Random).toString(36)
Дурдом.
В задаче четко
сказано: рандомный бигинт а не рандомный
какбы прайм.
Что характерно,
эта задачка дана сразу после главы, где
разжевано, как пользоваться Scaladoc.
Мало того, в
самой задачке сказано: Poke around Scaladoc to
find a way...
Короче,
внимательно поглядев на Scaladoc в раздел
BigInt можно быстро найти правильный ответ:
BigInt(128, util.Random) toString 36
И эти люди
пишут нам программы? Боже упаси.
original post http://vasnake.blogspot.com/2016/08/produce-random-bigint-and-convert-it-to.html
Комментариев нет:
Отправить комментарий