Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 25.01.2006, 20:35   #16
alex-mad
Модератор
 
Регистрация: 13.09.2005
Сообщений: 1,835
Написано 6 полезных сообщений
(для 10 пользователей)
Originally posted by jimon@Jan 25 2006, 06:10 PM
ну всеже она может хоть чучуть сказать какой корень
гы... нафиг такое надо? ф топку!
(Offline)
 
Ответить с цитированием
Старый 25.01.2006, 23:10   #17
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
Может я ещё не опоздал ?
alcoSHoLiK
Как определить, является ли число степенью двойки?
если я понял правильно, то ето можно решить так :
перевести число в Bin и одна проверка
при одной 1 (может слова не те )
True
правые 0 откинуть, левые : степень, для 2 .
ещё можно такой способ, не только для двойки
(а вернее для не степени двойки оснований ) :
1)извлекаем кв.корень
2)проверяем на целосность (вроде натуральное называется)
True
3)делим число на основание
4)проверяем на целосность
Return true
False
Меняем 1) и 3) местами
подумаю ещё над приоритетом 1)2)3) и 3)2)1)
про узнавании степени не додумал ,пока.

PS ещё про корни :
где-то в древности корень примерно извлекали так
sqr(a)=sqr(b^2+c)~b+(c/2b)

где 
B^2 > С
чем больше
тем точнее
Описал I в.н.э. древнегреческий ученый Героном Александрийский
(Offline)
 
Ответить с цитированием
Старый 26.01.2006, 01:28   #18
alex-mad
Модератор
 
Регистрация: 13.09.2005
Сообщений: 1,835
Написано 6 полезных сообщений
(для 10 пользователей)
Смех

to Kain
в формулу корня особо не вникал, но она не пригодится, т.к. в правой части всё равно есть корень... время не выиграем... так што можно считать как обычно ( что не на много быстрее)
алгоритмы - это конечно хорошо, но тут вроде как "Любопытные формулы"
и к тому же alcoSHoLiK уже написал формулу "проверка числа на степень 2":
bool PowOfTwo (int num)
{
 *return !(num & (num-1));
}
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо alex-mad за это полезное сообщение:
Harter (26.11.2009), Mr_F_ (17.11.2009)
Старый 26.01.2006, 22:46   #19
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
Формула не для пользования была приведена, а для справки
так считали 4000 лет назад....
учебник Алгебры 8 класса

1)у alcoSHoLiK 'а стоит знак вопроса
2)ето не для блица (тупо посмотрел справку,нету там

а так как я не профи, как понял так и ответил
а вообще когда есть двусмысленность пишите как impersonalis:
ответ (читать ... ... .. )
(Offline)
 
Ответить с цитированием
Старый 07.02.2007, 11:29   #20
N.O.T.
AnyKey`щик
 
Регистрация: 07.02.2007
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Любопытные формулы

Нужно было догнать любое число до первого большего с основанием 2 в N-степени, пример: если число 31, то резалт должен быть 32, если 257, то 512 и т.д.
Сначала написал, чтоб посмотреть будет ли ваще програ раобтать простым циклом:
while(true)
{
static int iIter = 1;
if( iLabelWidth > iIter )
iIter = iIter << 1;
else
{
iLabelWidth = iIter;
break;
}
}
потом начал придумывать как моно сделать запись короче, придумал:
// fIn - вход. число
// получаем степень
float stepen = log10((float)fIn)/ log10(2.0f);
int res = pow(2, ((floor(stepen)+1)));
Результат при сравнении на быстродействие:
на 10 млн. итераций выполняется за 9284 мск, против первого(обычным циклом) за 50 мск.
Так что оставил первый. Может кто-то лучше напишет, вставлю себе.
(Offline)
 
Ответить с цитированием
Старый 18.10.2007, 15:55   #21
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Любопытные формулы

((char*)&w)[sizeof(w)-1]&=~(1<<7);
Где w - float или double. Зануляет знаковый бит числа - аналог fabs. Не претендую на скорость выполнения - просто извращённая формула, порождённая моим мозгом.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 26.12.2007, 13:11   #22
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Любопытные формулы

((char*)&w)[sizeof(w)-1]&=~(1<<7);
интересно, компилятор ~(1<<7) рассчитает как константу? или в рантайме будет это считать?

jimon-у спасибо за быстрыыыыый корень.
2Imeprsionalis - inline не получится вставить. там код на asm-e.
(Offline)
 
Ответить с цитированием
Старый 26.12.2007, 19:14   #23
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Любопытные формулы

Константные выражения компилятор считать умеет. Если не доверяешь ему, смотри сгенерированные асм-листинги.
(Offline)
 
Ответить с цитированием
Старый 04.10.2008, 23:42   #24
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Любопытные формулы

<<jimon>> (23:32:19 4/10/200
http://www.graphics.stanford.edu/~seander/bithacks.html канопляное поле - единство битовой вселенной !
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dimanche13 (06.10.2008)
Старый 17.11.2009, 08:54   #25
~Lexx~
AnyKey`щик
 
Регистрация: 19.07.2008
Сообщений: 12
Написано одно полезное сообщение
(для 2 участников)
Ответ: Любопытные формулы

Формула для возведения числа в любую степень и извлечения любого корня:

exp(b*ln(a)),

где a - число, которое возводим в степень, b - степень в которую возводим, exp - экспонента, ln - натуральный логарифм.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ~Lexx~ за это полезное сообщение:
Harter (26.11.2009), Mr_F_ (17.11.2009)
Старый 09.02.2010, 16:42   #26
cheaters-hater
Оператор ЭВМ
 
Регистрация: 09.10.2007
Сообщений: 45
Написано 8 полезных сообщений
(для 16 пользователей)
Ответ: Любопытные формулы

формула возвращает 0 если (параметр<0) или параметр, если (параметр=>0)
result= ( parameter+Abs(parameter) )/2
понадобилось при прохождении массива по элементам, во избежание минусовых индексов.
не самый быстрый и правильный вариант решения задачи, но может кому пригодится.
(Offline)
 
Ответить с цитированием
Старый 09.02.2010, 19:33   #27
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Любопытные формулы

result = parameter*(parameter>0) , не?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
12121 (09.02.2010), cheaters-hater (26.02.2010), IGR (09.02.2010), Reizel (29.10.2011), Tadeus (09.02.2010)
Старый 09.02.2010, 22:56   #28
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Любопытные формулы

если учитовать строго условие то по задумке
result = parameter*(parameter>=0)
(Offline)
 
Ответить с цитированием
Старый 10.02.2010, 05:02   #29
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Любопытные формулы

Сообщение от ABTOMAT Посмотреть сообщение
result = parameter*(parameter>0) , не?
Автор же написал:
не самый быстрый и правильный вариант решения задачи
Здесь не мало примеров формул нерациональных, но любопытных.
Думаю - стоит перместить тред в Математику (там она будет более к месту, не смущая брейнфачными решениями).
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 10.02.2010, 07:22   #30
Alex.D.
Оператор ЭВМ
 
Регистрация: 02.11.2008
Сообщений: 27
Написано 12 полезных сообщений
(для 24 пользователей)
Ответ: Re: Любопытные формулы

Сообщение от N.O.T. Посмотреть сообщение
Нужно было догнать любое число до первого большего с основанием 2 в N-степени, пример: если число 31, то резалт должен быть 32, если 257, то 512 и т.д.

Может кто-то лучше напишет, вставлю себе.
x -= 1;
x |= (x >> 1);
x |= (x >> 2);
x |= (x >> 4);
x |= (x >> 8);
x |= (x >> 16);
x += 1;
^__^
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формулы в ТурбоПаскале Trazzy Математика 13 13.10.2009 02:00
Упрощение формулы) Unodeya 3D-программирование 3 07.06.2009 00:20
Формулы виграх Phoenix Математика 7 24.02.2007 13:50


Часовой пояс GMT +4, время: 13:40.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com