<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Нужна помощь в составлении формулы</title>
<description>Здравствуйте уважаемые пользователи!

У меня на работе возникла необходимость составить одну формулу. На первый взгляд все довольно просто, и тем не менее у меня не получается найти решение. Искренне надеюсь на вашу помощь. В случае если вам она покажется простой, напишите хотя бы о том, что ее все-таки можно найти.

Итак

Есть случайный набор чисел, например:

-8
6
3
-9
-1
0
2
0
0
-9
0

Числа могут быть любые, но среди них надо выделить три группы. Первая это положительные числа, вторая это отрицательные числа и третья это нули. Задача состоит в том, чтобы при помощи одной формулы преобразовать эти числа в отрицательные и положительные единицы по следующим правилам:
1) Любое положительное число должно быть преобразовано в положительную единицу;
2) Любое отрицательное число должно быть преобразовано в отрицательную единицу;
3) Ноль, идущий в ряду после положительного числа должен быть преобразован в положительную единицу;
4) Ноль, идущий после отрицательного числа должен быть преобразован в отрицательную единицу;
5) Ноль, идущий в ряду после нуля, преобразованного в положительную единицу, должен быть преобразован в положительную единицу;
6) Ноль, идущий в ряду после нуля, преобразованного в отрицательную единицу, должен быть преобразован в отрицательную единицу.


Т.е. если преобразовать ряд чисел, приведенный выше, мы получим

-1
1
1
-1
-1
-1
1
1
1
-1
-1

Преобразование положительных и отрицательных чисел конечно же элементарное, но вот с нулями у меня возникла проблема

Заранее спасибо за помощь!</description><link>http://www.mathforum.ru/forum/read/1/74760/74760/#74760</link><lastBuildDate>Sat, 17 Oct 2026 00:33:23 +0300</lastBuildDate>
<generator>Phorum 5.2.10</generator>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74783/#74783</guid>
<title>Извините, была неправа</title><link>http://www.mathforum.ru/forum/read/1/74760/74783/#74783</link><description><![CDATA[Набирала в дороге с телефона, поэтому формулы без пояснений.]]></description>
<dc:creator>provincialka</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 23:56:15 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74782/#74782</guid>
<title>Спасибо</title><link>http://www.mathforum.ru/forum/read/1/74760/74782/#74782</link><description><![CDATA[<blockquote class="bbcode"><div><small>Цитата<br/></small><strong>provincialka</strong><br/>
что там две буквы: <span class="math">$a$</span> и <span class="math">$b$</span>? Имелось в виду, что <span class="math">$a$</span> - &quot;старые&quot; числа, а <span class="math">$b$</span>- &quot;новые&quot;. Они равны только 1 или -1. Подумайте все-таки немного сами, не ждите, что вам разжуют и в рот положат.<br /><br />В вашем примере получим: <span class="math">$b_1=sign 3 =1, b_2=sign(1+2\cdot 0)= 1$</span>, ... Если же четвертое число будет равно -2, то <span class="math">$b_4=sign(1+2\cdot(-2))=sign(-3)=-1$</span>.<br />Если числа <span class="math">$a$</span> могут быть маленькими, формула переписывается так: <span class="math">$b_k=sign(b_{k-1}+2sign(a_k))$</span></div></blockquote>
Ладно вам на новичка наезжать, сразу не понял. Большое спасибо за помощь!]]></description>
<dc:creator>mishaurgeu</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 23:29:02 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74781/#74781</guid>
<title>...</title><link>http://www.mathforum.ru/forum/read/1/74760/74781/#74781</link><description><![CDATA[<blockquote class="bbcode"><div><small>Цитата<br/></small><strong>provincialka</strong><br/>
... формула переписывается так: <span class="math">$b_k=sign(b_{k-1}+2sign(a_k))$</span></div></blockquote>
и прекрасно работает.]]></description>
<dc:creator>yog-urt</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 23:26:36 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74780/#74780</guid>
<title>Вы не заметили</title><link>http://www.mathforum.ru/forum/read/1/74760/74780/#74780</link><description><![CDATA[что там две буквы: <span class="math">$a$</span> и <span class="math">$b$</span>? Имелось в виду, что <span class="math">$a$</span> - &quot;старые&quot; числа, а <span class="math">$b$</span>- &quot;новые&quot;. Они равны только 1 или -1. Подумайте все-таки немного сами, не ждите, что вам разжуют и в рот положат.<br /><br />В вашем примере получим: <span class="math">$b_1=sign 3 =1, b_2=sign(1+2\cdot 0)= 1$</span>, ... Если же четвертое число будет равно -2, то <span class="math">$b_4=sign(1+2\cdot(-2))=sign(-3)=-1$</span>.<br />Если числа <span class="math">$a$</span> могут быть маленькими, формула переписывается так: <span class="math">$b_k=sign(b_{k-1}+2sign(a_k))$</span>]]></description>
<dc:creator>provincialka</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 23:15:45 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74779/#74779</guid>
<title>Формула</title><link>http://www.mathforum.ru/forum/read/1/74760/74779/#74779</link><description><![CDATA[<span class="math">$ \gamma_i= sign(a_i)Ind(a_i\ne 0) + \gamma_{i-1} Ind(a_i= 0) = sign(a_i) sign^2(a_i) + \gamma_{i-1}(1- sign^2(a_i) ) $</span>.<br />Индикаторы можно представить другими формулами.]]></description>
<dc:creator>yog-urt</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 23:11:37 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74778/#74778</guid>
<title>Ну предположим</title><link>http://www.mathforum.ru/forum/read/1/74760/74778/#74778</link><description><![CDATA[<blockquote class="bbcode"><div><small>Цитата<br/></small><strong>provincialka</strong><br/>
Функция &quot;сигнум&quot; как раз дает 1, 0 или -1 для положительных чисел, нуля и отрицательных соответственно. В Ecxel она называется ЗНАК.</div></blockquote>
знаю, я ее уже пробовал(((<br /><br />Предположим я сумел как-то избавиться от чисел меньше 1/2, возникает другая проблема. Формула не будет работать для ряда чисел подобному<br /><br />3<br />0<br />0<br /><br />По вашей формуле для третьего числа мы получим значение &quot;0&quot;, а должно быть 1, потому что первое число, не равное нулю, которое идет в ряду до него положительное. Да и вообще в преобразованном ряду не должно быть нулей, только 1 или -1.<br /><br />Ряд чисел случаен и я не могу сказать какое количество нулей подряд может в нем быть.]]></description>
<dc:creator>mishaurgeu</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 22:11:17 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74774/#74774</guid>
<title>функция sign</title><link>http://www.mathforum.ru/forum/read/1/74760/74774/#74774</link><description><![CDATA[Функция &quot;сигнум&quot; как раз дает 1, 0 или -1 для положительных чисел, нуля и отрицательных соответственно. В Ecxel она называется ЗНАК.]]></description>
<dc:creator>provincialka</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 21:57:29 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74772/#74772</guid>
<title>после запятой - неважно</title><link>http://www.mathforum.ru/forum/read/1/74760/74772/#74772</link><description><![CDATA[Важно, не будут ли числа по модулю меньше 1 (а вернее, меньше 1/2). Идея основана на том, что если <span class="math">$a_k$</span> не ноль, то в сумме это значение &quot;перевесит&quot; единичку, полученную для предыдущего числа. Если такое может случиться, &quot;навесьте&quot; на <span class="math">$a_k$</span> еще один сигнум.]]></description>
<dc:creator>provincialka</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 21:54:08 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74768/#74768</guid>
<title>Возможно я не совсем точно сформулировал</title><link>http://www.mathforum.ru/forum/read/1/74760/74768/#74768</link><description><![CDATA[Если предположить, что в ряду нет нулей, то формула будет x/|x|. Таким образом любое положительное число х будет преобразовано в положительную единицу, а любое отрицательное в отрицательную единицу. Но это конечно верно только если в ряду нет нулей.<br /><br />Да, еще одно допущение, для первого числа можно не определять значение, т.е. формула может применяться, начиная со второго числа в ряду<br /><br />Представьте таблицу в excel. Первый столбец это случайные числа. Во втором столбце формула, которая копируется на весь столбец.<br /><br /><br /><blockquote class="bbcode"><div><small>Цитата<br/></small><strong>provincialka</strong><br/>
<span class="math">$b_k=\sign(b_{k-1}+2a_k)$</span>. Это если числа целые.</div></blockquote>
Нет, числа могут быть любые, с бесконечным количеством знаков после запятой]]></description>
<dc:creator>mishaurgeu</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 21:04:58 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74766/#74766</guid>
<title>вот так, например</title><link>http://www.mathforum.ru/forum/read/1/74760/74766/#74766</link><description><![CDATA[<span class="math">$b_k=\sign(b_{k-1}+2a_k)$</span>. Это если числа целые.]]></description>
<dc:creator>provincialka</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 21:01:53 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74764/#74764</guid>
<title>что такое &quot;формула&quot;</title><link>http://www.mathforum.ru/forum/read/1/74760/74764/#74764</link><description><![CDATA[Что вы понимаете под &quot;одной формулой&quot;? Функцию? От каких аргументов? Ясно, что не от одного текущего.<br />В программе это сделать легко: менять число, как только сменится знак.]]></description>
<dc:creator>provincialka</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 20:39:45 +0400</pubDate></item>
<item>
<guid>http://www.mathforum.ru/forum/read/1/74760/74760/#74760</guid>
<title>Нужна помощь в составлении формулы</title><link>http://www.mathforum.ru/forum/read/1/74760/74760/#74760</link><description><![CDATA[Здравствуйте уважаемые пользователи!<br /><br />У меня на работе возникла необходимость составить одну формулу. На первый взгляд все довольно просто, и тем не менее у меня не получается найти решение. Искренне надеюсь на вашу помощь. В случае если вам она покажется простой, напишите хотя бы о том, что ее все-таки можно найти.<br /><br />Итак<br /><br />Есть случайный набор чисел, например:<br /><br />-8<br />6<br />3<br />-9<br />-1<br />0<br />2<br />0<br />0<br />-9<br />0<br /><br />Числа могут быть любые, но среди них надо выделить три группы. Первая это положительные числа, вторая это отрицательные числа и третья это нули. Задача состоит в том, чтобы при помощи <u>одной</u> формулы преобразовать эти числа в отрицательные и положительные единицы по следующим правилам:<br />1) Любое положительное число должно быть преобразовано в положительную единицу;<br />2) Любое отрицательное число должно быть преобразовано в отрицательную единицу;<br />3) Ноль, идущий в ряду после положительного числа должен быть преобразован в положительную единицу;<br />4) Ноль, идущий после отрицательного числа должен быть преобразован в отрицательную единицу;<br />5) Ноль, идущий в ряду после нуля, преобразованного в положительную единицу, должен быть преобразован в положительную единицу;<br />6) Ноль, идущий в ряду после нуля, преобразованного в отрицательную единицу, должен быть преобразован в отрицательную единицу.<br /><br /><br />Т.е. если преобразовать ряд чисел, приведенный выше, мы получим<br /><br />-1<br />1<br />1<br />-1<br />-1<br />-1<br />1<br />1<br />1<br />-1<br />-1<br /><br />Преобразование положительных и отрицательных чисел конечно же элементарное, но вот с нулями у меня возникла проблема<br /><br />Заранее спасибо за помощь!]]></description>
<dc:creator>mishaurgeu</dc:creator>
<category>Высшая математика</category><pubDate>Fri, 14 Feb 2014 18:29:58 +0400</pubDate></item>
</channel>
</rss>