<?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=292302&amp;view=findpost&amp;p=2476780</guid>
        <pubDate>Sun, 17 Jan 2010 11:46:47 +0000</pubDate>
        <title>Составление слова из букв заданного слова</title>
        <link>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2476780</link>
        <description><![CDATA[dima_s_d_s: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=292302&view=findpost&p=2476444'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andrew.virus &#064; <time class="tag-quote__quoted-time" datetime="2010-01-16T23:27:38+03:00">16.01.10, 20:27</time></span><div class='quote '><strong class='tag-b'>dima_s_d_s</strong> набросал пример, который работает ...<br>
...<br>
з.ы.: в прилагаемом архиве пример целиком ...</div></div><br>
Большое спасибо.<br>
Буду разбираться, жаль что не С/С++ или PHP :(]]></description>
        <author>dima_s_d_s</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2476444</guid>
        <pubDate>Sat, 16 Jan 2010 20:27:38 +0000</pubDate>
        <title>Составление слова из букв заданного слова</title>
        <link>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2476444</link>
        <description><![CDATA[andrew.virus: <strong class='tag-b'>dima_s_d_s</strong> набросал пример, который работает ...<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">function generateAllWords(baseStr: string; baseFile: string): TStrings;</div><div class="code_line">// генерация слов на базе основного с проверкой по словарю</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;indArr: array of byte;</div><div class="code_line">&nbsp;&nbsp;i, j, lenArr: integer;</div><div class="code_line">&nbsp;&nbsp;tmpStr: string;</div><div class="code_line">&nbsp;&nbsp;dicArr: TStrings;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;lenArr:=length(baseStr);</div><div class="code_line">&nbsp;&nbsp;setlength(indArr, lenArr + 1); &nbsp;// формирование массива индексов ...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// ... для формирования базовых основ</div><div class="code_line">&nbsp;&nbsp;result:=TStringList.Create;</div><div class="code_line">&nbsp;&nbsp;// формирование списка основ для генерации слов ...</div><div class="code_line">&nbsp;&nbsp;// ... и получение на их основе полного списка</div><div class="code_line">&nbsp;&nbsp;// начальная инициализация массива индексов</div><div class="code_line">&nbsp;&nbsp;for i:=0 to lenArr do</div><div class="code_line">&nbsp;&nbsp; &nbsp;indArr[i]:=0;</div><div class="code_line">&nbsp;&nbsp;//</div><div class="code_line">&nbsp;&nbsp;while indArr[lenArr] &#60;&#62; 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;i:=0; // индекс бита двоичного числа</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;while indArr[i] = 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;indArr[i]:=0; // моделируем перенос в следующий разряд, ...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// ... возникающий при сложении</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i:=i+1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;indArr[i]:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// получение простой подстроки от основы ...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// ... для генерации слов</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;tmpStr:=&#39;&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for i:=0 to (lenArr - 1) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if indArr[i] = 1 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmpStr:=tmpStr + baseStr[i + 1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// добавление очередной подстроки в список основ</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if length(tmpStr) &#62; 1 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if result.IndexOf(tmpStr) &#60; 0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.Add(tmpStr)</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;// формирование списка реальных слов на ...</div><div class="code_line">&nbsp;&nbsp;// ... основе проверки по словарю</div><div class="code_line">&nbsp;&nbsp;dicArr:=TStringList.Create;</div><div class="code_line">&nbsp;&nbsp;dicArr.LoadFromFile(baseFile);</div><div class="code_line">&nbsp;&nbsp;for i:=(result.Count - 1) downto 0 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;j:=dicArr.IndexOf(result[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if j &#60; 0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result.Delete(i)</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;result.SaveToFile(&#39;out.txt&#39;)</div><div class="code_line">end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><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">generateAllWords(edit1.text, &#39;in.txt&#39;);</div></ol></div></div></div></div><br>
для входного слова &quot;маскарад&quot; и словаря:<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">ар</div><div class="code_line">ор</div><div class="code_line">мортира</div><div class="code_line">антивирус</div><div class="code_line">маска</div><div class="code_line">маскарад</div><div class="code_line">дар</div><div class="code_line">пена</div><div class="code_line">ад</div><div class="code_line">мор</div><div class="code_line">парад</div><div class="code_line">пенопласт</div><div class="code_line">лиман</div><div class="code_line">боль</div><div class="code_line">лемон</div><div class="code_line">фунт</div><div class="code_line">кадр</div><div class="code_line">дама</div><div class="code_line">тиф</div><div class="code_line">смерть</div></ol></div></div></div></div><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">маска</div><div class="code_line">ар</div><div class="code_line">ад</div><div class="code_line">маскарад</div></ol></div></div></div></div><br>
з.ы.: в прилагаемом архиве пример целиком ...]]></description>
        <author>andrew.virus</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2476250</guid>
        <pubDate>Sat, 16 Jan 2010 17:48:47 +0000</pubDate>
        <title>Составление слова из букв заданного слова</title>
        <link>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2476250</link>
        <description><![CDATA[dima_s_d_s: Есть алгоритм <a class='tag-url' href='http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5' target='_blank'>Размещение</a><br>
Там же есть пример организации алгоритма на Java. <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">import java.util.Arrays;</div><div class="code_line">&nbsp;</div><div class="code_line">public class PermutationsWithRepetition {</div><div class="code_line">&nbsp;&nbsp; &nbsp;private Object[] source;</div><div class="code_line">&nbsp;&nbsp; &nbsp;private int variationLength;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public PermutationsWithRepetition(Object[] source, int variationLength) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;this.source = source;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;this.variationLength = variationLength;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public Object[][] getVariations() {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int srcLength = source.length;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int permutations = (int) Math.pow(srcLength, variationLength);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Object[][] table = new Object[permutations][variationLength];</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i &#60; variationLength; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int t2 = (int) Math.pow(srcLength, i);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int p1 = 0; p1 &#60; permutations;) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int al = 0; al &#60; srcLength; al++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int p2 = 0; p2 &#60; t2; p2++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;table[p1][i] = source[al];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;p1++;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return table;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static void main(String[] args) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;PermutationsWithRepetition gen = new PermutationsWithRepetition(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new Integer[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0},</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;5);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Object[][] variations = gen.getVariations();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (Object[] s : variations) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(Arrays.toString(s));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><br>
Пример хороший, но он реализует размещение с повторениями. <br>
<strong class='tag-b'>Может есть подобный пример алгоритма, для размещение без повторений?</strong>]]></description>
        <author>dima_s_d_s</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475585</guid>
        <pubDate>Fri, 15 Jan 2010 21:48:55 +0000</pubDate>
        <title>Составление слова из букв заданного слова</title>
        <link>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475585</link>
        <description><![CDATA[dima_s_d_s: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=292302&view=findpost&p=2475357'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andrew.virus &#064; <time class="tag-quote__quoted-time" datetime="2010-01-15T17:32:48+00:00">15.01.10, 17:32</time></span><div class='quote '>возмоден такой вариант:<br>
<br>
1. генерируем все подмножества данного множества, учитывая ограничения на длину слова (см. <a class='tag-url' href='http://algolist.manual.ru/maths/combinat/subentities.php' target='_blank'>эдесь</a>)<br>
2. для каждого слова строим перестановки без повторений (см. <a class='tag-url' href='http://algolist.manual.ru/maths/combinat/seqnm.php' target='_blank'>здесь</a>)<br>
3. сверяем найденные слова со словарем и получаем все слова, которые есть в словаре</div></div><br>
Начну с первого.<br>
1. генерируем все подмножества данного множества, учитывая ограничения на длину слова (см. <a class='tag-url' href='http://algolist.manual.ru/maths/combinat/subentities.php' target='_blank'>эдесь</a>)<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">$a = &quot;миранда&quot;;</div><div class="code_line">$count = 0;</div><div class="code_line">for($i=0; $i&#60;7; $i++){</div><div class="code_line">&nbsp;&nbsp; &nbsp;$cnt = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for($j=0; $j &#60;= $count; $j++){</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$cnt++;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$array[$count+$cnt] = $array[$j].$a[$i];</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;$count+=$cnt+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$array[$count] = $a[$i];</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
Помогите привести до ума.]]></description>
        <author>dima_s_d_s</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475464</guid>
        <pubDate>Fri, 15 Jan 2010 19:01:21 +0000</pubDate>
        <title>Составление слова из букв заданного слова</title>
        <link>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475464</link>
        <description><![CDATA[vk: Словарь из файла организовать в виде дерева, в котором каждый путь - слово, а каждая вершина - буква.<br>Обходить дерево слева направо, осуществляя поиск очередной буквы-вершины в исходном слове. Если буква есть - вычеркнуть её из копии исходного слова и спускаться дальше по ветке, если нет - возврат.]]></description>
        <author>vk</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475357</guid>
        <pubDate>Fri, 15 Jan 2010 17:32:48 +0000</pubDate>
        <title>Составление слова из букв заданного слова</title>
        <link>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475357</link>
        <description><![CDATA[andrew.virus: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=292302&view=findpost&p=2475259'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>dima_s_d_s &#064; <time class="tag-quote__quoted-time" datetime="2010-01-15T16:01:30+00:00">15.01.10, 16:01</time></span><div class='quote '>Допустим есть слово миранда, есть источник слов (допустим текстовый файл), нужно составить слова из букв заданного слова (мир, марина, рама ....).</div></div><br>
возмоден такой вариант:<br>
<br>
1. генерируем все подмножества данного множества, учитывая ограничения на длину слова (см. <a class='tag-url' href='http://algolist.manual.ru/maths/combinat/subentities.php' target='_blank'>эдесь</a>)<br>
2. для каждого слова строим перестановки без повторений (см. <a class='tag-url' href='http://algolist.manual.ru/maths/combinat/seqnm.php' target='_blank'>здесь</a>)<br>
3. сверяем найденные слова со словарем и получаем все слова, которые есть в словаре]]></description>
        <author>andrew.virus</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475316</guid>
        <pubDate>Fri, 15 Jan 2010 16:55:29 +0000</pubDate>
        <title>Составление слова из букв заданного слова</title>
        <link>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475316</link>
        <description><![CDATA[esperanto: Оптимальный по какому критерию?]]></description>
        <author>esperanto</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475259</guid>
        <pubDate>Fri, 15 Jan 2010 16:01:30 +0000</pubDate>
        <title>Составление слова из букв заданного слова</title>
        <link>https://forum.sources.ru/index.php?showtopic=292302&amp;view=findpost&amp;p=2475259</link>
        <description><![CDATA[dima_s_d_s: Допустим есть слово миранда, есть источник слов (допустим текстовый файл), нужно составить слова из букв заданного слова (мир, марина, рама ....).<br><br>Подскажите оптимальный вариант алгоритма.<br>Заранее благодарен.]]></description>
        <author>dima_s_d_s</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	