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

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

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

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

Ответ
 
Опции темы
Старый 01.11.2005, 20:29   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Напрмер.
Реализация чередования значений a и b, хранящийхся в перменной x
x=( a + b ) - x
Перед первой обработкой в x должно хранится одно из значений (a или b )
a=6
b=9
x=b
For i=1 To 10
	x=(a+b)-x
	Print x
Next
WaitKey()
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
BlackDragon (09.02.2010), Hagrael (15.06.2011), IgorOK (14.02.2010), Randomize (09.02.2010), Reizel (29.10.2011)
Старый 01.11.2005, 20:36   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Реализация прохода переменной x всех значений из [0;b-1]
x = ( x + 1 ) Mod b
b=5
x=0
For i=1 To 10
	x=(x+1)Mod *b
	Print x
Next
WaitKey()
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
Harter (17.11.2009), Randomize (21.02.2010)
Старый 01.11.2005, 20:46   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Выбор максимума из a,b в одну ф-лу
x = ( Abs( a-b ) + ( a+b ) ) *.5
a=4 
b=10
x=(Abs(a-b)+(a+b))*.5
Print x
WaitKey()
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 01.11.2005, 23:58   #4
jimon
 
Сообщений: n/a
хм

ето ты сам придумал ? или где взял ?
 
Ответить с цитированием
Старый 02.11.2005, 01:44   #5
НУБ
Бывалый
 
Регистрация: 22.09.2005
Сообщений: 634
Написано 36 полезных сообщений
(для 102 пользователей)
>Выбор максимума из a,b в одну ф-лу
>x = ( Abs( a-b ) + ( a+b ) ) *.5

If a>b
x=a
else
x=b
endif

- это будет гораздо быстрее, чем куча умножений/сложений(раз в 5-6 примерно), вот тест(если не верите):

a=5
b=8

time1=MilliSecs()
For i=1 To 10000000
x = ( Abs( a-b ) + ( a+b ) ) *.5 
Next
time1=MilliSecs()-time1

time2=MilliSecs()
For i=1 To 10000000
If a>b 
x=a
Else
x=b
EndIf
Next
time2=MilliSecs()-time2


Print time1
Print time2
WaitKey()
(Offline)
 
Ответить с цитированием
Старый 02.11.2005, 16:34   #6
jimon
 
Сообщений: n/a
прикол у меня первый способ быстрее
у pentiumов alu рулит полюбе - вот за что их люблю , и неглючат никогда
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Harter (17.11.2009)
Старый 02.11.2005, 20:55   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Не отрицаю - все выше изложенные формулы работают медленее, конструкций условного перехода, однако, в борьбе за скорость приходится отказваться от удобочитаемости ( избавляться от функциий, юзать goto и т.п.) - так что выбор за вами. Я лишь посчитал эти формулы интересными.
Практически все где-то видел : в институте, интернете, чужом коде.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 02.11.2005, 20:58   #8
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Ф-лу минимума можно получить или эвристически или объединив ф-лы для max и чередования 2ух значений.
x = ( ( a+b ) - Abs( a-b ) ) *.5
a=10
b=1
x = ( ( a+b ) - Abs( a-b ) ) *.5
Print x
WaitKey()
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 23.01.2006, 23:01   #9
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Как определить, является ли число степенью двойки?
bool PowOfTwo (int num)
{
  return !(num & (num-1));
}
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (29.10.2011)
Старый 24.01.2006, 14:33   #10
jimon
 
Сообщений: n/a
БЫСТРЫЙЙЙЙ ) квадратный корень с минимальной точностью

float fast_sqrt(float f)
{
  float result;
  _asm
  {
    mov eax, f
    sub eax, 0x3f800000
    sar eax, 1
    add eax, 0x3f800000
    mov result, eax
  }

  return result;
}
)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (29.10.2011)
Старый 24.01.2006, 15:39   #11
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
2jimon :
продолжая борьбу за скорость: добавь ещё inline для функции
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 24.01.2006, 22:11   #12
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Да, хорошая функция, но огорчает, что выдает неточный результат с простыми корнями. Например, fast_sqrt(625)==25.76, а fast_sqrt(144)==12.5.
(Offline)
 
Ответить с цитированием
Старый 24.01.2006, 23:05   #13
jimon
 
Сообщений: n/a
ето не я делал... щитается дефак-то самая быстрая функция примерного извлечение квадратного корня
 
Ответить с цитированием
Старый 25.01.2006, 00:05   #14
alex-mad
Модератор
 
Регистрация: 13.09.2005
Сообщений: 1,835
Написано 6 полезных сообщений
(для 10 пользователей)
Originally posted by jimon@Jan 24 2006, 10:05 PM
ето не я делал... щитается дефак-то самая быстрая функция примерного извлечение квадратного корня
а говорил с минимальной точностью...
(Offline)
 
Ответить с цитированием
Старый 25.01.2006, 19:10   #15
jimon
 
Сообщений: n/a
ну всеже она может хоть чучуть сказать какой корень
 
Ответить с цитированием
Ответ


Опции темы

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

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, время: 02:40.


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