Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Возвести 2 в натуральную степень / 20 сообщений из 20, страница 1 из 1
11.12.2006, 19:04
    #34191454
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
А именно 0, 1, 2 (,3 ,4).

pow -- тупо
цикл -- тупо
case -- тупо

А красиво никак нельзя?
...
Рейтинг: 0 / 0
11.12.2006, 19:13
    #34191470
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
Тебе пора глобус менять - на планете земля остался лишь табличный способ, но боюсь он тебя не удовлетворит - но на всякий случай - берешь для каждого 2^[32|64] составляешь таблицу натуральных степеней и наслаждаешься сложностью O(1)
...
Рейтинг: 0 / 0
11.12.2006, 19:15
    #34191477
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
Ой ВэйА красиво никак нельзя?Красиво - бинарным сдвигом влево единицы на величину степени минус один.
PS. 0 - не является натуральным числом.
...
Рейтинг: 0 / 0
11.12.2006, 19:18
    #34191482
Int_64
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
x^y = exp(x*ln(y)), тока следи за корректностью переменных
...
Рейтинг: 0 / 0
11.12.2006, 19:47
    #34191544
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
2miksoft
ты один меня понимаешь ;)
...
Рейтинг: 0 / 0
11.12.2006, 20:36
    #34191610
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
автор
Красиво - бинарным сдвигом влево единицы на величину степени минус один


Ха, "возвести 2" я как раз и пропустил - подумал, что любое целое в степень.
...
Рейтинг: 0 / 0
11.12.2006, 21:25
    #34191676
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
А вот допустим нужно возвести M в степень N (M и N - натуральные) не пользуясь експонентой и заранее подготовленным массивом, каково по Вашему минимальное кол-во умножений.
...
Рейтинг: 0 / 0
11.12.2006, 21:37
    #34191683
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
SnowMan2А вот допустим нужно возвести M в степень N (M и N - натуральные) не пользуясь експонентой и заранее подготовленным массивом, каково по Вашему минимальное кол-во умножений.примерно так:
(Log2(N) с округлением в большую сторону)+(кол-во единиц в двоичном представлении числа N)-1
...
Рейтинг: 0 / 0
11.12.2006, 21:39
    #34191684
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
miksoft SnowMan2А вот допустим нужно возвести M в степень N (M и N - натуральные) не пользуясь експонентой и заранее подготовленным массивом, каково по Вашему минимальное кол-во умножений.примерно так:
(Log2(N) с округлением в большую сторону)+(кол-во единиц в двоичном представлении числа N)-1Это если M - вещественное.

Если M - целое, то (кол-во единиц в двоичном представлении числа N)-1
...
Рейтинг: 0 / 0
11.12.2006, 21:48
    #34191692
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
С Log2(N) с округлением я согласен,
а вот насчет:
Если M - целое, то (кол-во единиц в двоичном представлении числа N)-1

както сомнительно, например 5 в 5-ой степени. 5 - 101 в двоичной, т.е. 2 единицы как за одно умножение не представляю (может чего-то не понял).
...
Рейтинг: 0 / 0
11.12.2006, 21:54
    #34191703
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
SnowMan2С Log2(N) с округлением я согласен,
а вот насчет:
Если M - целое, то (кол-во единиц в двоичном представлении числа N)-1

както сомнительно, например 5 в 5-ой степени. 5 - 101 в двоичной, т.е. 2 единицы как за одно умножение не представляю (может чего-то не понял).Хм... что-то я прогнал...
Я пытался использовать тот факт, что сдвиг влево эквивалентен умножению на степень двойки, но формально умножением не является

надо ехать домой спать :(
...
Рейтинг: 0 / 0
11.12.2006, 22:09
    #34191724
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
а ведь можно все умножения заменить на сложения, т.е. минимально количество умножений - 0 :)
...
Рейтинг: 0 / 0
12.12.2006, 00:02
    #34191871
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
miksoftа ведь можно все умножения заменить на сложения, т.е. минимально количество умножений - 0 :)

Общеизвестный математический факт. Если перевести числа в логарифмический масштаб, то их сложение даст эффект умножения в масштабе обычном. В старые бородатые времена, этим пользовались. Логарифмическая линейка заменяла научный калькулятор. Вот так-то.
...
Рейтинг: 0 / 0
12.12.2006, 11:44
    #34192646
Int_64
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
miksoftа ведь можно все умножения заменить на сложения, т.е. минимально количество умножений - 0 :)
чем то напоминает методы индийских программистов
...
Рейтинг: 0 / 0
12.12.2006, 11:50
    #34192671
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
miksoftКрасиво - бинарным сдвигом влево единицы на величину степени минус один.неа
...
Рейтинг: 0 / 0
12.12.2006, 12:07
    #34192733
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
maXmo miksoftКрасиво - бинарным сдвигом влево единицы на величину степени минус один.неапочему?
...
Рейтинг: 0 / 0
12.12.2006, 12:18
    #34192775
Int_64
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
maXmo miksoftКрасиво - бинарным сдвигом влево единицы на величину степени минус один.неа
Вроде бы самый красивый вариант для решения конкретной задачи, в самом деле, почему "неа"?
...
Рейтинг: 0 / 0
12.12.2006, 12:25
    #34192806
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
2^n=1<<n
...
Рейтинг: 0 / 0
12.12.2006, 12:27
    #34192816
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
ошибка была 50%
...
Рейтинг: 0 / 0
12.12.2006, 12:38
    #34192866
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвести 2 в натуральную степень
maXmo2^n=1<<nда, насчет минус единицы я тоже промахнулся, согласен.
таки надо спать больше, а на работе сидеть меньше :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Возвести 2 в натуральную степень / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]