Алгебра
27 минут назад
Только чётный номера (2,4,6,8)Алгебра
37 минут назад
решите уравнение: 9-9х² помогите пожалуйста решитьАлгебра
37 минут назад
У першому ряду кінотеатру 30 місць, а в кожному наступному ряду на 4 місця більше. Скільки місць у ряду з номером n? Помогите пожалуйста даю 50БАлгебра
1 час назад
Решение триганометрических уравнений.Алгебра
1 час назад
функцію задано формулою y 2x 5 знайдіть значення функції якщо аргумент =11Алгебра
1 час назад
5. (1 б)Формула ап=3n + 1 е формулою п-го члена послідовності: A 4; 8; 12; 16;.. 54; 7; 10; 13;.. B 1; 3; 4; 6;.. I 3:5; 6; 7;..Алгебра
1 час назад
Найди значение выражения:МРОЧНО ПРОШУАлгебра
1 час назад
Алгебра 8класпж быстрей Алгебра
2 часа назад
Вычислите значение выражение пожалуйста, сразу ответАлгебра
2 часа назад
Найдите константу 9 8 классАлгебра
2 часа назад
Помогите с самостоятельной.Алгебра
2 часа назад
Дз по алгебре срочноеВсе предметы
Русский
Россия
English
United States
Bahasa Indonesia
Indonesia
English
India
English
Philippines
Polski
Polska
Türkçe
Türkiye
How much to ban the user?
1 hour 1 day
Погода в Кургане сегодня, прогноз погоды Курган на сегодня, Курган (городской округ), Курганская область, Россия
GISMETEO: Погода в Кургане сегодня, прогноз погоды Курган на сегодня, Курган (городской округ), Курганская область, РоссияПерейти на мобильную версию
Сейчас
18:17
−13 9
По ощущению −18 0
Пт, 17 фев
Сегодня
−25−13
−1112
Сб, 18 фев
Завтра
−21−6
−139
1,3 мм
200
500
800
1100
1400
1700
2000
2300
−24−11
−25−13
−24−11
−155
−1112
−1210
−163
−180
Скорость ветра, м/cкм/ч
2-5 7-18
1-5 4-18
Осадки, мм
Распечатать. ..
Снег
Пт, 17 фев, сегодня
Сб, 18
200
500
800
1100
1400
1700
2000
2300
Выпадающий снег, см
Высота снежного покрова, см
23,6
23,6
24
24
24
24
24
24
/Ветер, м/скм/ч
Пт, 17 фев, сегодня
Сб, 18
200
500
800
1100
1400
1700
2000
2300
Порывы
—
—
—
—
—
—
АвтоДавление, мм рт. ст.гПа
Пт, 17 фев, сегодня
Сб, 18
200
500
800
1100
1400
1700
2000
2300
7701026
7691025
7691025
7681024
7661021
7641018
7631017
7621016
Влажность, %
Пт, 17 фев, сегодня
Сб, 18
200
500
800
1100
1400
1700
2000
2300
80
79
78
78
65
70
80
80
Солнце и Луна
Пт, 17 фев, сегодня
Сб, 18
Долгота дня: 9 ч 49 мин
Восход — 7:58
Заход — 17:47
Сегодня день на 5 минут длиннее, чем вчера
Луна стареющая, 13%
Заход — 11:40 (16 февраля)
Восход — 7:06
Полнолуние — 7 марта, через 19 дней
Ультрафиолетовый индекс, баллы
Пт, 17 фев, сегодня
Сб, 18
200
500
800
1100
1400
1700
2000
2300
Геомагнитная активность, Кп-индекс
Пт, 17 фев, сегодня
Сб, 18
200
500
800
1100
1400
1700
2300
Осадки
Температура
Ветер
Облачность
Курган
Большое Чаусово
Придорожный
Шкодинское
Чистопрудный
Кетово
Малиновка
Белый Яр
Лукино
Патронная
Костоусово
Новая Сидоровка
Северное
Колташево
Санаторная
Введенское
Кропани
Колесниково
Лесниково
Балки
Уфина
Передергина
Усть-Утяк
Редькино
3-8c++ — быстрый способ вычислить n раз 10, возведенное в степень минус m
спросил
Изменено 5 лет, 2 месяца назад
Просмотрено 6к раз
Я хочу вычислить 10 в степени минус м
.
pow(10, -m)
, есть ли какой-нибудь быстрый и эффективный способ сделать это? Я задаю такой простой вопрос гуру c++ из SO, что, как вы знаете, точно так же, как основание 2, 10 также является специальным основанием. Если некоторое значение n
умножить на степень десятков минус m
, это эквивалентно перемещению десятичной точки n влево m раз. Я думаю, что это должен быть быстрый и эффективный способ справиться с этим.
- с++
- математика
- пав
3
Для плавающей запятой m, если ваша стандартная реализация библиотеки хорошо написана, тогда pow
будет эффективным.
Если m является целым числом, и вы намекнули, что это так, то вы можете использовать массив предварительно вычисленных значений.
Вы должны беспокоиться о подобных вещах только в том случае, если эта подпрограмма является узким местом в вашем коде.
Это если вызовы этой подпрограммы занимают значительную часть общего времени выполнения.3
К сожалению, не существует быстрого и эффективного способа вычисления с использованием представления с плавающей запятой IEEE 754. Самый быстрый способ получить результат — построить таблицу для каждого интересующего вас значения m
, а затем просто выполнить поиск.
1
Если есть быстрый и эффективный способ сделать это, то я уверен, что ваш ЦП его поддерживает, если только вы не работаете на встроенной системе, и в этом случае я бы надеюсь что реализация pow(…) написана хорошо.
10 особенный для нас, так как у большинства из нас десять пальцев. У компьютеров всего две цифры, поэтому цифра 2 для них особенная. 🙂
Используйте справочную таблицу, там не может быть более 1000 чисел с плавающей запятой, особенно если m целое число.
Если бы вы могли работать с log n вместо n в течение значительного времени, вы могли бы сэкономить время, потому что вместо
n = pow(10*n,-m)
теперь вам нужно вычислить (используя определение l = log10(n))
л = -м*(л+1)
1
Еще несколько идей, которые могут привести вас к дальнейшим решениям…
Если вас интересует оптимизация на уровне алгоритма вы может искать параллельный подход.
Вы можете ускориться на системный/архитектурный уровень использования Ipp (для процессоров Intel) или, например. AMD Базовая математическая библиотека (ACML) для AMD
Чтобы использовать всю мощь вашей графики карта может быть другим способом (например, CUDA для карт NVIDEA)
Думаю тоже стоит посмотреть OpenCL
1
IEEE 754 определяет набор форматов с плавающей запятой.