Войти
ФлеймФорумОбщее

Напряги извилины... (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
19:02, 28 июня 2004

Dr.Death
бо сижу 1 час и ничего.. нашол пару вариантов.. но тама есть случаии не решаемости..


#16
19:16, 28 июня 2004

CyberZX
неправильно... ты в любом случае только 0 или 1 получаешь...

#17
19:45, 28 июня 2004

Код на Python(вроде работает, но не удовлетворяет условию):
x!=0 and sqrt(x*x)/x or 0

#18
19:48, 28 июня 2004

Ещё короче:
x and sqrt(x*x)/x

#19
20:17, 28 июня 2004

а по-моему эта задача не имеет решений. хотя бы потому что функция sign имеет бесконечные производные всех порядков в точке 0. и производная +0 не равняется от производной -0. я конечно не крутой математик, уже все забыл. но мне кажется, что такую функцию нельзя реализовать с помочью конечной последовательности элементарных математических функций

#20
20:45, 28 июня 2004

CyberZX
Функция sqrt (x) имеет бесконечные производные всех порядков в точке 0 ;)

#21
20:50, 28 июня 2004
  FILE* f = fopen( "text", "w" );
  for( int64 x = -100; x < 100; x++ )
  {
    int64 m = ( x + 1 )/( sqrt( x*x ) + 1 )  -  ( 1 - x )/( sqrt( x*x ) + 1 );
    fprintf( f, "%i - %i\n", x, m );
  }
  fclose( f );

Фактически сдесь работает не математика, а трик преобразования float в int/int64

При очень больших значениях x( порядка 1/2 MAX int64 по модулю ) начинается генерация неверных результатов

#22
20:51, 28 июня 2004

А в идее IROV'a было рациональное зерно, как мне кажется.

Вариант такого рода:

1/2 * ((x - sqrt(x*x))/sqrt(x*x) + (x+sqrt(x*x))/sqrt(x*x))

#23
20:56, 28 июня 2004

Сорри, я тоже прогнался.

#24
21:31, 28 июня 2004

Семен
так sqrt не определена на отрицательной оси. а sign определена везде. но не везде имеет производную

#25
21:39, 28 июня 2004

Хииииииииииииииииииииииииииииии!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
композиция непрерывных фунций - непрерывн :)

#26
22:25, 28 июня 2004

CyberZX
Ну, я и не спорю, что это разные функции :)

#27
22:28, 28 июня 2004

Семен
ну вот да. _Winnie правильно подсказал. sqrt - функция непрервыная, +/-, * тоже непрервыная. деленее функция прерывная, но имеет точку разрыва первого рода. короче, что-то тут не так.

#28
22:46, 28 июня 2004

int sign(float x)
{
return int(double(FLOAT_MAX-x)/double(FLOAT_MAX+x) - 1);
}
Но тут тоже всё на преобразованиях...

#29
23:27, 28 июня 2004

CyberZX
Не-не, у деления при знаменателе 0 разрыв второго рода, кажецца, т. к. значение на бесконечность уходит.

Страницы: 1 2 3 4 Следующая »
ФлеймФорумОбщее

Тема в архиве.