Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Избежать Булевой алгебры, а написать математическую функцию 
V
    Опции темы
_Y_
Дата 27.9.2014, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Возникла такая нетривиальная задача. Надо написать формулу, не применяя Булевых операторов - только арифметика/алгебра.

Имеются две величины а и b. Надо написать математическую функцию f(a,b), растущую с ростом каждой величины, как, например a+b или sqrt(a*a+b*b), но принимающую значение ноль в случаях если a или b или оба они отрицательны. При этом булевы условия задавать нельзя.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Pavia
Дата 27.9.2014, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



(1+a/abs(a))*(1+b/abs(b))
PM MAIL   Вверх
_Y_
Дата 27.9.2014, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Pavia, спасибо. Это, почти решает задачу. Но есть одна проблема.

Если один из аргументов принимает значение ноль возникает неопределенность. А вот неопределенности мне необходимо избегать.

Это сообщение отредактировал(а) _Y_ - 27.9.2014, 16:41


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Pavia
Дата 27.9.2014, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



_Y_
sign() -можно использовать?
CrossProduct использовать можно? 
PM MAIL   Вверх
_Y_
Дата 27.9.2014, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(Pavia @  27.9.2014,  16:40 Найти цитируемый пост)
sign() -можно использовать?
CrossProduct использовать можно?  

По-моему sign() это функция просто прячущая внутри себя операторы сравнения. Так что использовать ее нельзя.

С CrossProduct я как-то не сталкивался (ну или не помню). Инет говорит о векторах и трехмерном пространстве. Даже и не знаю каким концом (в трехмерном пространстве) эта функция сюда подходит.



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Dremuk
Дата 27.9.2014, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.12.2009

Репутация: нет
Всего: нет



(1+a/abs(a))*(1+b/abs(b)) - не является растущей. Это набор констант

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Dremuk
Дата 27.9.2014, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.12.2009

Репутация: нет
Всего: нет



0 или 2

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Dremuk
Дата 27.9.2014, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.12.2009

Репутация: нет
Всего: нет



вернее не 2 а 4

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Dremuk
Дата 27.9.2014, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.12.2009

Репутация: нет
Всего: нет



по-моему таких функций нет

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
_Y_
Дата 28.9.2014, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(Dremuk @  27.9.2014,  22:04 Найти цитируемый пост)
(1+a/abs(a))*(1+b/abs(b)) - не является растущей. Это набор констант



Но, если бы не деление на ноль при a или b равном нулю, это решало бы проблему. Ведь любую растущую функцию можно умножить на получаемую константу.



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
maxim1000
Дата 1.10.2014, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



(a+abs(a))*(b+abs(b))


--------------------
qqq
PM WWW   Вверх
_Y_
Дата 1.10.2014, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



maxim1000
Цитата(maxim1000 @  1.10.2014,  10:54 Найти цитируемый пост)
(a+abs(a))*(b+abs(b)) 

О! Именно оно. Кстати, еще днем нашел дургой вариант того же:

(a+sqrt(a*a))*(b+sqrt(b*b)) 




--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.2739 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.