2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Заменить функцию более простой
Сообщение18.09.2013, 00:34 
Аватара пользователя
Минимум символов - это, пожалуй, будет как раз через синус.

 
 
 
 Re: Заменить функцию более простой
Сообщение18.09.2013, 02:18 
Напрямую соорудить периодическую функций из +, -, *, / и констант невозможно. Приведенные выше формулы либо «эмулируют» периодичность с помощью степени -1, либо пользуются условной функцией. Поэтому можно не париться – лучше не будет.

Но если вспомнить, что синус есть решение дифференциального уравнения, то можно записать соответствующее разностное:
$f(n+2)=-f(n)$
Ну, и первые два члена выступят в качестве «начального условия.

 
 
 
 Re: Заменить функцию более простой
Сообщение18.09.2013, 10:31 
Аватара пользователя
naiv1 в сообщении #764886 писал(а):
Критерий простоты:интуитивный, например, минимум символов, которые формула содержит.

Лучше потребовать минимума операций принадлежащих некоторому множеству.

Пусть, например, множество операций $\{+,-,\cdot,/,\&\}$, где $\&$ операция побитового AND.

Мой вариант $f(n)=(n\;\&\;1)\cdot(2 -(n\;\&\;3))$, четыре операции из указанного множества.

 
 
 
 Re: Заменить функцию более простой
Сообщение18.09.2013, 22:49 
ИСН в сообщении #764915 писал(а):
Минимум символов - это, пожалуй, будет как раз через синус.
Я уже об этом подумал днем до того, как прочитал Ваше сообщение. Возможно, это самая короткая запись. Дело в том, что нужно использовать комбинацию известных функций, т.к. если вводить новые функции, то их надо еще описать, на что требуется немало символов.

Может быть можно еще как-то поиграться с выражениями, которые содержат функцию $y=|x|$ - тоже ведь известную? Тем более, если нарисовать график рассматриваемой периодической последовательности, то он выглядит пилообразной ломаной линией,зубья которой как раз и похожи на график функции взятия абсолютной величины с соответствующими знаками в соответствующих промежутках изменения аргумента. У меня что-то не получается в этом направлении.

whitefox в сообщении #764994 писал(а):
Мой вариант $f(n)=(n\;\&\;1)\cdot(2 -(n\;\&\;3))$
Этот вариант может быть и неплохой, однако имеет скорее компьютерный вид, а хотелось бы видеть формулу с известными математическими операциями или функциями.

 
 
 
 Re: Заменить функцию более простой
Сообщение19.09.2013, 00:46 
Аватара пользователя
Ну если Вам не нравится операция побитового AND, то её можно заменить операцией взятия остатка $\mod$, очень хорошо известной математической операцией. Формулу уже приводил:
whitefox в сообщении #764662 писал(а):
$f(n)=(n\bmod2)\cdot(2-(n\bmod4))$
Число операций по прежнему четыре.

Или использовать функцию "дробная часть" $\{x\}$

$f(n)=4\{\frac n 2\}(1-2\{\frac n 4\})$

Можете ещё использовать функцию "расстояние до ближайшего целого" $\{\{x\}\}$ http://kvant.mccme.ru/pdf/2002/05/36.pdf
Сравните её график с графиком построенным Вами, необходимые изменения очевидны.

 
 
 
 Re: Заменить функцию более простой
Сообщение19.09.2013, 23:41 
whitefox в сообщении #765221 писал(а):
whitefox в сообщении #764662 писал(а):
$f(n)=(n\bmod2)\cdot(2-(n\bmod4))$
Это вполне нормальный вариант.

Путем некоторых манипуляций с функцией абсолютной величины мне все-таки удалось найти формулу для общего члена последовательности с использованием этой функции в виде:
$f(n)=|2-|n \mod 4-1||-1$.

Похоже, что лучший вариант представления последовательности для восприятия человеком - это первый, через функцию синус. (Прямо как по известной сказке, когда мужик пошел продавать на рынок корову и так расхваливал ее перед покупателями, что убедил себя, что корова хороша и пригодится ему самому :D ).
Для компьютерной реализации можно выбрать одну формул представленных участниками, за которые их благодарю.

P.S. Если есть другие варианты представления последовательности - пишите.

 
 
 
 Re: Заменить функцию более простой
Сообщение19.09.2013, 23:53 
$f(n)=c(1+(n-1) \mod 4)$
где $c=(0,1,0,-1)$

Есче:
$f(n)=-\operatorname{Re}(i^n)$

Я знаю толк в изращениях... :-)

 
 
 
 Re: Заменить функцию более простой
Сообщение20.09.2013, 00:58 
Аватара пользователя
naiv1 в сообщении #765570 писал(а):
$f(n)=|2-|n \mod 4-1||-1$

Внешний модуль - лишний.

 
 
 
 Re: Заменить функцию более простой
Сообщение20.09.2013, 23:50 
Пожоже нет предела совершенству!
mserg в сообщении #765571 писал(а):
$f(n)=c(1+(n-1) \mod 4)$
где $c=(0,1,0,-1)$
Очень неплохой вариант компьютерной реализации, связанной с введением массива, почти не требующий вычислений, а только выборки.
Если использовать соглашение, допускаемое в некоторых компьютерных языках, что нумерация числового массива может начинатся с $0$, а не с $1$, то $f(n)$ принимает совсем уж простой вид:
$f(n)=c(n \mod 4)$, где
$c=(0,1,0,-1)$.

С учетом замечания-предложения
ИСН в сообщении #765601 писал(а):
Внешний модуль - лишний.
предложенная мною формула для $f(n)$ может быть упрощена до
$f(n)=1-|n \mod 4-1|$.
Формула содержит четыре операции, однако не использует дополнительного массива и вполне может использоваться для компьютерной реализации.

Есть еще предложения?

 
 
 
 Re: Заменить функцию более простой
Сообщение20.09.2013, 23:53 
Без массива на C: (5>>(n&3)&3)-1

 
 
 
 Re: Заменить функцию более простой
Сообщение23.09.2013, 22:22 
venco в сообщении #766016 писал(а):
Без массива на C: (5>>(n&3)&3)-1
Поясните, что это за операции:
1. >>
2. &
и их приоритет(ность) по отношению друг к другу.

 
 
 
 Re: Заменить функцию более простой
Сообщение23.09.2013, 22:25 
naiv1 в сообщении #767124 писал(а):
1. >>
Побитовый сдвиг вправо, эквивалентен делению на соответствующую степень двойки.
naiv1 в сообщении #767124 писал(а):
2. &
Побитовый И.
naiv1 в сообщении #767124 писал(а):
и их приоритет(ность) по отношению друг к другу.
Сначала >> (почти как деление), потом &.

 
 
 
 Re: Заменить функцию более простой
Сообщение01.10.2013, 13:51 
В свое время постеснялся написать, а сейчас решился, пока это еще не будет расценено как некропостинг: формула venco - это как раз то, что я хотел (да вовремя не успел) придумать для этой функции: минимум базовых операций, которые есть в большинстве архитектур, отсутствие умножения, деления, остатка от деления, условий и т.п.

 
 
 [ Сообщений: 28 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group