<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1419715</guid>
        <pubDate>Thu, 18 Jan 2007 19:26:52 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1419715</link>
        <description><![CDATA[Pacific: <strong class='tag-b'>Pegas</strong><br>
Возвращаясь к твоему вопросу: когда-то давно я тоже читал про этот алгоритм и закодил его, а потом поражался его проницательности. Вкратце, простейшая версия этого алгоритма работает так: пусть угадывание ведется на основе N предыдущих загаданных чисел (они программе известны). Программа собирает статистику - сколько раз N+1-е число было единицей или нулем в зависимости от предыдущих. Если единиц было больше, то пишет &quot;1&quot;, иначе &quot;0&quot;. Числа, которые загадывает человек, она отгадывает легко, так как людям свойственно (например) после 5 подряд идущих единиц загадать 0. Что касается генераторов псевдослучайных чисел - эту прогу, как выяснилось, можно использовать как еще один тест на качество генерируемых чисел. Для качественного генератора процент угадывания должен колебаться в районе 50%.]]></description>
        <author>Pacific</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1419659</guid>
        <pubDate>Thu, 18 Jan 2007 18:55:32 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1419659</link>
        <description><![CDATA[amk: Заметь числа ПСЕВДОСЛУЧАЙНЫЕ, т.е. они только похожи на случайные. Раз вероятность угадывания всего 55% можно сказать, что в данном случае он неплохо справляется.]]></description>
        <author>amk</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1418580</guid>
        <pubDate>Thu, 18 Jan 2007 09:36:12 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1418580</link>
        <description><![CDATA[Pegas: <strong class='tag-b'>Pacific</strong><br>
<br>
я использовал стандартный псевдо случайный генератор чисел из С++. я в нём не силён, так что криптографические генераторы заюзать проблематично.<br>
<br>
ЗЫ я дату видел, и надеялся что кто-то из активных в данное время форумчан заметят пост и ответят =)]]></description>
        <author>Pegas</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1418228</guid>
        <pubDate>Thu, 18 Jan 2007 06:40:00 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1418228</link>
        <description><![CDATA[Pacific: <strong class='tag-b'>Pegas</strong><br>
Ты смотрел на дату первого поста? Вряд-ли они тебе уже ответят. Твой генератор не очень качественный, раз программа стабильно угадывает его значения с вероятностью &gt; 50%. Попробуй криптографические генераторы, или вместо случайных бит используй биты какого-нибудь зашифрованного RAR-архива. Их-то эта прога точно не сможет угадать.]]></description>
        <author>Pacific</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1417577</guid>
        <pubDate>Wed, 17 Jan 2007 15:23:40 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1417577</link>
        <description><![CDATA[Pegas: пожалуйста, ответьте на мой вопрос - это действительно важно. я приложу все усилия, что бы понять =)<br>
<br>
ЗЫ вроде алгоритм не сложный должен быть, но что-то само не приходит((<br>
<br>
ЗЗЫ вот немного изменённый вышепреведённый код:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;conio.h&#62;</div><div class="code_line">#include &#60;stdio.h&#62;</div><div class="code_line">#include &#60;stdlib.h&#62;</div><div class="code_line">#include &#60;malloc.h&#62;</div><div class="code_line">#include &#60;time.h&#62; </div><div class="code_line">#include &#60;stdlib.h&#62; </div><div class="code_line">&nbsp;</div><div class="code_line">#define SCANCODE_ONE 49</div><div class="code_line">#define SCANCODE_ZERO 48</div><div class="code_line">&nbsp;</div><div class="code_line">typedef unsigned short us;</div><div class="code_line">typedef unsigned char &nbsp;uc;</div><div class="code_line">typedef unsigned long &nbsp;ul;</div><div class="code_line">&nbsp;</div><div class="code_line">typedef struct</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;ul zero;</div><div class="code_line">&nbsp;&nbsp;ul one;</div><div class="code_line">} datatype;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">// &#231;&#224;&#239;&#240;&#238;&#241; &#241;&#232;&#236;&#226;&#238;&#235;&#224; &#241; &#234;&#235;&#224;&#226;&#251;</div><div class="code_line">uc getnum(void)</div><div class="code_line">{</div><div class="code_line">/* &nbsp;uc j, k=0;</div><div class="code_line">&nbsp;&nbsp;while ( !kbhit() );</div><div class="code_line">&nbsp;&nbsp;while ( !k )</div><div class="code_line">&nbsp;&nbsp; &nbsp; k = getch();</div><div class="code_line">&nbsp;&nbsp;j=255;</div><div class="code_line">&nbsp;&nbsp;if ( k == SCANCODE_ONE )</div><div class="code_line">&nbsp;&nbsp; &nbsp; j=1;</div><div class="code_line">&nbsp;&nbsp;if ( k == SCANCODE_ZERO )*/</div><div class="code_line">&nbsp;&nbsp; &nbsp; int j=rand()%2;</div><div class="code_line">&nbsp;&nbsp;return j;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">void updatedata(datatype **data, uc *ans, uc depth)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;int i, k;</div><div class="code_line">&nbsp;&nbsp;ul j;</div><div class="code_line">&nbsp;&nbsp;for ( i=(depth-1); i&#62;=0; i-- ) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; j=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; for ( k=(depth-1); k&#62;=i; k-- )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;j += ans[k] * (1&#60;&#60;(depth-1-k));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if ( ans[depth] == 1)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data[depth-1-i][j].one++;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if ( ans[depth] == 0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data[depth-1-i][j].zero++;</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">uc analyse(datatype **data, uc *ans, uc depth)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;int i, k;</div><div class="code_line">&nbsp;&nbsp;ul j, zero=0, one=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for ( i=(depth-1); i&#62;=0; i-- ) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; j=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; for ( k=(depth-1); k&#62;=i; k-- )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;j += ans[k] * (1&#60;&#60;(depth-1-k));</div><div class="code_line">&nbsp;&nbsp; &nbsp; one += data[depth-1-i][j].one;</div><div class="code_line">&nbsp;&nbsp; &nbsp; zero += data[depth-1-i][j].zero;</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;if ( zero &#62; one )</div><div class="code_line">&nbsp;&nbsp; &nbsp; return 0;</div><div class="code_line">&nbsp;&nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; return 1;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">void main ( void )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;srand((unsigned)time(NULL)); </div><div class="code_line">&nbsp;&nbsp;ul all_answer=0, wrong_answer=0;</div><div class="code_line">&nbsp;&nbsp;int depth;</div><div class="code_line">&nbsp;&nbsp;datatype **data;</div><div class="code_line">&nbsp;&nbsp;uc *ans;</div><div class="code_line">&nbsp;&nbsp;us i;</div><div class="code_line">&nbsp;&nbsp;uc t_ans, c;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;printf(&quot;\nDepth (1..20) : &quot;); scanf(&quot;\%d&quot;, &amp;depth);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;ans = (uc *)calloc( depth+1, sizeof(uc *));</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;if ( ((data = (datatype **)malloc( depth * sizeof(datatype *) )) == NULL) ) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; puts(&quot;Not enough memory!&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; exit(1);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for ( i=0; i&#60;depth; i++ )</div><div class="code_line">&nbsp;&nbsp; &nbsp; if ( (data[i] = (datatype *)calloc( (1+(1&#60;&#60;(i+1))), sizeof(datatype) )) == NULL) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;puts(&quot;Not enough memory!&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;printf(&quot;\nPress &#39;0&#39; or &#39;1&#39;.&quot;);</div><div class="code_line">&nbsp;&nbsp;printf(&quot;\nAny other key - exit.\n\n&quot;);</div><div class="code_line">int xy=0;</div><div class="code_line">&nbsp;&nbsp;while (1) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; for ( i=0; i&#60;depth; i++ )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ans[i] = ans[i+1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; t_ans = analyse(data, ans, depth);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; if ( (ans[depth] = getnum()) == 255)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; updatedata(data, ans, depth);</div><div class="code_line">&nbsp;&nbsp; &nbsp; all_answer++;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; c = &#39;+&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; if ( t_ans != ans[depth] ) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;wrong_answer++;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;c = &#39;-&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; xy = xy+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; if ((xy%1000000)==0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; printf(&quot;? \%d - \%d ? \%0.3f ? \%d ? \%c ?\n&quot;, ans[depth], t_ans, (all_answer-wrong_answer)/(all_answer+1.0), all_answer, c );</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
здесь числа задаёт генератор случайных чисел. объясните мне, дураку, почему этот алгоритм разгадывает числа, задаваемые генератором случайных чисел? причём результат угадывания( если установить глубину поиска равной 20 ) всегда больше 50%. зачастую 53-54 процента.<br>
<br>
что за фигня?]]></description>
        <author>Pegas</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1400385</guid>
        <pubDate>Wed, 03 Jan 2007 23:22:48 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=1400385</link>
        <description><![CDATA[Pegas: а не можете ли вы, дескать, на пальцах объяснит данный алгоритм? как именно он работает? как именно проходит анализ?<br><br>Заранее благодарен за любую помощь&#33;<br><br>ЗЫ с С++ не слишком знаком, так что разобраться в выше приведённом коде весьма затруднительно =)]]></description>
        <author>Pegas</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=95336</guid>
        <pubDate>Thu, 22 Aug 2002 09:42:30 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=95336</link>
        <description><![CDATA[GrAnd: Для реализации данного алгоритма поможет простой статистический анализ вариантов человека. Т.е. если процент выпадения у человека 1 больше, чем 0, то и вариант ответа машины будет склоняться к 1. Данный анализ здорово помагает для безошибочного анализа ответов ;D ;D ;D]]></description>
        <author>GrAnd</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=95335</guid>
        <pubDate>Thu, 15 Aug 2002 08:16:50 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=95335</link>
        <description><![CDATA[Poisson: Ниже мой старый исходник, по-моему это то, о чем ты спрашивал.<br><br>#include &lt;conio.h&gt;<br>#include &lt;stdio.h&gt;<br>#include &lt;stdlib.h&gt;<br>#include &lt;malloc.h&gt;<br><br>#define SCANCODE_ONE 49<br>#define SCANCODE_ZERO 48<br><br>typedef unsigned short us;<br>typedef unsigned char &nbsp;uc;<br>typedef unsigned long &nbsp;ul;<br><br>typedef struct<br>{<br> &nbsp; ul zero;<br> &nbsp; ul one;<br>} datatype;<br><br><br>// запрос символа с клавы<br>uc getnum(void)<br>{<br> &nbsp; uc j, k=0;<br> &nbsp; while ( !kbhit() );<br> &nbsp; while ( !k )<br> &nbsp; &nbsp; &nbsp;k = getch();<br> &nbsp; j=255;<br> &nbsp; if ( k == SCANCODE_ONE )<br> &nbsp; &nbsp; &nbsp;j=1;<br> &nbsp; if ( k == SCANCODE_ZERO )<br> &nbsp; &nbsp; &nbsp;j=0;<br> &nbsp; return j;<br>}<br><br><br>void updatedata(datatype **data, uc *ans, uc depth)<br>{<br> &nbsp; int i, k;<br> &nbsp; ul j;<br> &nbsp; for ( i=(depth-1); i&gt;=0; i-- ) {<br> &nbsp; &nbsp; &nbsp;j=0;<br> &nbsp; &nbsp; &nbsp;for ( k=(depth-1); k&gt;=i; k-- )<br> &nbsp; &nbsp; &nbsp; &nbsp; j += ans[k] * (1&lt;&lt;(depth-1-k));<br> &nbsp; &nbsp; &nbsp; &nbsp; if ( ans[depth] == 1)<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data[depth-1-i][j].one++;<br> &nbsp; &nbsp; &nbsp; &nbsp; if ( ans[depth] == 0)<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data[depth-1-i][j].zero++;<br> &nbsp; }<br>}<br><br><br>uc analyse(datatype **data, uc *ans, uc depth)<br>{<br> &nbsp; int i, k;<br> &nbsp; ul j, zero=0, one=0;<br><br> &nbsp; for ( i=(depth-1); i&gt;=0; i-- ) {<br> &nbsp; &nbsp; &nbsp;j=0;<br> &nbsp; &nbsp; &nbsp;for ( k=(depth-1); k&gt;=i; k-- )<br> &nbsp; &nbsp; &nbsp; &nbsp; j += ans[k] * (1&lt;&lt;(depth-1-k));<br> &nbsp; &nbsp; &nbsp;one += data[depth-1-i][j].one;<br> &nbsp; &nbsp; &nbsp;zero += data[depth-1-i][j].zero;<br> &nbsp; }<br> &nbsp; if ( zero &gt; one )<br> &nbsp; &nbsp; &nbsp;return 0;<br> &nbsp; else<br> &nbsp; &nbsp; &nbsp;return 1;<br>}<br><br><br>void main ( void )<br>{<br> &nbsp; ul all_answer=0, wrong_answer=0;<br> &nbsp; uc depth;<br> &nbsp; datatype **data;<br> &nbsp; uc *ans;<br> &nbsp; us i;<br> &nbsp; uc t_ans, c;<br><br> &nbsp; printf(&quot;\nDepth (1..20) : &quot;); scanf(&quot;\%d&quot;, &amp;depth);<br><br> &nbsp; ans = (uc *)calloc( depth+1, sizeof(uc *));<br><br> &nbsp; if ( ((data = (datatype **)malloc( depth * sizeof(datatype *) )) == NULL) ) {<br> &nbsp; &nbsp; &nbsp;puts(&quot;Not enough memory!&quot;);<br> &nbsp; &nbsp; &nbsp;exit(1);<br> &nbsp; }<br><br> &nbsp; for ( i=0; i&lt;depth; i++ )<br> &nbsp; &nbsp; &nbsp;if ( (data[i] = (datatype *)calloc( (1+(1&lt;&lt;(i+1))), sizeof(datatype) )) == NULL) {<br> &nbsp; &nbsp; &nbsp; &nbsp; puts(&quot;Not enough memory!&quot;);<br> &nbsp; &nbsp; &nbsp; &nbsp; exit(1);<br> &nbsp; &nbsp; &nbsp;}<br><br> &nbsp; printf(&quot;\nPress '0' or '1'.&quot;);<br> &nbsp; printf(&quot;\nAny other key - exit.\n\n&quot;);<br><br> &nbsp; while (1) {<br> &nbsp; &nbsp; &nbsp;for ( i=0; i&lt;depth; i++ )<br> &nbsp; &nbsp; &nbsp; &nbsp; ans[i] = ans[i+1];<br> &nbsp; &nbsp; &nbsp;t_ans = analyse(data, ans, depth);<br><br> &nbsp; &nbsp; &nbsp;if ( (ans[depth] = getnum()) == 255)<br> &nbsp; &nbsp; &nbsp; &nbsp; return;<br><br> &nbsp; &nbsp; &nbsp;updatedata(data, ans, depth);<br> &nbsp; &nbsp; &nbsp;all_answer++;<br><br> &nbsp; &nbsp; &nbsp;c = '+';<br> &nbsp; &nbsp; &nbsp;if ( t_ans != ans[depth] ) {<br> &nbsp; &nbsp; &nbsp; &nbsp; wrong_answer++;<br> &nbsp; &nbsp; &nbsp; &nbsp; c = '-';<br> &nbsp; &nbsp; &nbsp;}<br> &nbsp; &nbsp; &nbsp;printf(&quot;? \%d - \%d ? \%0.3f ? \%d ? \%c ?\n&quot;, ans[depth], t_ans, (all_answer-wrong_answer)/(all_answer+1.0), all_answer, c );<br> &nbsp; }<br>}]]></description>
        <author>Poisson</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=95334</guid>
        <pubDate>Tue, 30 Jul 2002 04:24:08 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=95334</link>
        <description><![CDATA[stx: ты насчет этого,http://zab.megalink.ru/depart/vm/olimp/lec/pg03.htm<br>да это просто забавно, я хочу сказать.]]></description>
        <author>stx</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=95333</guid>
        <pubDate>Sat, 27 Jul 2002 19:04:36 +0000</pubDate>
        <title>Гадалка Шеннона</title>
        <link>https://forum.sources.ru/index.php?showtopic=9959&amp;view=findpost&amp;p=95333</link>
        <description><![CDATA[hunter: Не встречал ли кто &quot;Гадалку Шеннона&quot;?<br>Вот ее краткое описание:<br> &nbsp; &nbsp;Человек пишет на бумаге число 0 или 1. Машина этого числа не знает, но печатает 0, 1 или 2. Двойка говорит, что машина не берётся угадать написанное число, а 0 или 1 - её предположение о написанном числе. После этого человеку сообщают предположение машины, а в машину вводят число, написанное человеком.<br><br>Если встречали и у Вас есть подробное описание алгоритма или работающая программа то немогли бы Вы мне ее выслать?<br>Не знаете ли Вы другие алгоритмы, решающие эту задачу?]]></description>
        <author>hunter</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	