Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [Алгоритм ]Получить средние разряды числа. |
Автор: Костя1992 15.1.2012, 12:42 |
Как получить из x = 0,07|4927|81, Число 4927 Нужен алгоритм какойто?Или нужно переводить методом преобразования в строку?Помогите плз |
Автор: disputant 15.1.2012, 13:08 |
Некорректно как-то условие задано. Для конкретного вашего числа? Попробуйте сформулировать правильнее - для чисел вида (из диапазона, ...) надо получить ... (цифры с 5 по 8-ю, средние четыре, ...). А то у вас не условие, а недоразумение... |
Автор: Костя1992 15.1.2012, 13:10 |
Мне кажеться легче обьяснить на примере,поэтому и написал такое условие. |
Автор: disputant 15.1.2012, 13:40 | ||
Ну, тогда ждите того, кто поймет ваш пример... |
Автор: Костя1992 15.1.2012, 13:44 |
Хорошо ,обьясняю: Для реализации генерации чисел методом средних квадратов мне нужно получить n-средних разрядов из числа с плавающей точкой,как это можно реализовать? |
Автор: feodorv 15.1.2012, 15:19 |
Это способ генерации псевдослучайных чисел методом фон Неймана... |
Автор: feodorv 15.1.2012, 16:23 |
Я всё же не понимаю, зачем при этом пользоваться числами с плавающей точкой... Ведь если реализовать всё через __int64 или long long, то максимальная разрядность для n будет 9 (что с лихвой перекроет четвёрку), а в long double-числах я не уверен (операция деления на 10 для чисел с плавающей точкой весьма нетривиальна, алгоритм можно сбить). |
Автор: Костя1992 15.1.2012, 20:12 |
Шустрый,просто такова постановка задачи, я вот думаю можна ли как то добиться этого числа через div,mod и умножением на 10^n? |
Автор: Mirkes 16.1.2012, 17:45 |
Если ставить вопрос несколько иначе, например получить 4 разряда начиная с третьего после запятой, то нет никаких проблем Берем очередное случайное число из диапазона [0,1], умножаем его на 7, отбрасываем дробную часть, берем остаток от деления на 10000 - вуаля! |
Автор: Костя1992 16.1.2012, 19:02 |
Да,последний ответ актуальный,грубо говоря все делаеться спомощью у множения на 10^n и операций div,mod.Тема закрыта! |