| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Взятие цифры в заданном разряде |
| Автор: Bikutoru 9.4.2006, 12:31 | ||
Здраствуйте. У меня возникла необходимость выделения цифр в отдельных разрядах при работе с BigInteger. Метода, позволяющего делать этого я не нашел и выкрутился следующим образом:
и всё-таки вопрос остался - нет ли какого-нибудь способа "вытащить" значение в конкретном десятичном разряде числа, представленного BigInteger'ом? |
| Автор: powerOn 9.4.2006, 14:38 | ||||
Т.к числа целые, то данную задачу еще можно решить математически, с испльзованием деления и взятия отстатка от деления. вот так можно разложить число на разряды.
Это будет работать быстрее чем твой код.... А если еще и доработать........ |
| Автор: LSD 10.4.2006, 11:20 |
| А чем не устраивают стандартные генераторы случайных чисел? И зачем именно десятичные разряды использовать? |
| Автор: Bikutoru 10.4.2006, 12:25 | ||
Тем, что это учебная задача в рамках курса со страшным названием. И задача стоит такая: "разработать генератор псевдослучайных чисел, дающий равномерное распределение на участке [0,1) в рамках описанной ранее идеи (читай, подобрать начальные числа, операции над ними, правила выбора разрядов для псевдослучайной величины и правила замены исходных чисел) и написать программу, которая построит гистограмму распределения. |
| Автор: powerOn 10.4.2006, 12:37 | ||||
| Сорри за оффтоп.. А как название курса звучит? Просто у меня типа такого же задания по Курсу Информационной Безопасноти. Добавлено @ 12:48
А ты думаешь что при переводе числа в строку не используется деление? Имхо очень даже используется. А это строкой ты перевод делаешь всего числа, т.е. каждый разряд выделяется. Не думаю, что сделав лишних операций ты быстрее придешь финишу... В прочем тебе виднее... |
| Автор: Bikutoru 10.4.2006, 13:48 | ||||
"Компьютерные технологии в науке и образовании"
ИМХО, при переводе BigInteger'a в строку? Не уверен, но и говорить, чтоэтого не происходит не буду. На самом деле, я этот вопрос задал из-за возникшего ощущения "А не дурак ли я?", но судя по тому, что простейшего ответа "в одну строку" я не получил, получается что это была ложная тревога... А производительность моего кода меня вполне устраивает, а заниматься оптимизацией ради оптимизации никакого желания нет. Но все равно спасибо за ответ. |
| Автор: LSD 10.4.2006, 14:24 | ||
Ты забываешь об одной вещи, это не int, а BigInteger. И операция деления для него не менее трудоемка, чем перевод в строку. Так что ИМХО способ вполне нормальный. |