<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Permutation, Frage zu next_permutation]]></title><description><![CDATA[<p>Hallo <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Mit std::next_permutation kann ich ja einen array wie</p>
<pre><code>{ 1, 2, 3 }
</code></pre>
<p>zu allen möglichen Permutationen transferieren der drei Werte permutieren:</p>
<pre><code>{ 1, 2, 3 }
{ 1, 3, 2 }
{ 2, 1, 3 }
...
</code></pre>
<p>Wie bekomme ich es aber hin, zwar nur einen Array aus beispielsweise 3 Stellen zu haben, aber eine dieser Stellen nicht nur 3 verschiedene Werte sondern z.b. 10 verschiedene Wert haben kann?</p>
<pre><code>{ 1, 2, 3 }
{ 1, 2, 4 }
{ 1, 2, 5 }
{ 1, 2, 6 }
{ 1, 2, 7 }
...
{ 7, 8, 3 }
...
</code></pre>
<p>Ich habe vor eine Zeichenkette mit beliebiger Länge und einem Charset ebenfalls beliebiger Länge auf diese Weise zu permutieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code>&quot;abcdefghijklmnopqrstuvwxyz&quot;
</code></pre>
<p>jetzt will ich eine zeichenkette beliebiger länge alle möglichen kombinationen aus diesem charset zuweisen</p>
<pre><code>&quot;abc&quot;
...
&quot;fxd&quot;
...
&quot;jxz&quot;
</code></pre>
<p>Jemand eine Idee wie man soetwas realisieren könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143957/permutation-frage-zu-next_permutation</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 13:11:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143957.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Apr 2006 09:04:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Permutation, Frage zu next_permutation on Thu, 13 Apr 2006 09:04:20 GMT]]></title><description><![CDATA[<p>Hallo <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Mit std::next_permutation kann ich ja einen array wie</p>
<pre><code>{ 1, 2, 3 }
</code></pre>
<p>zu allen möglichen Permutationen transferieren der drei Werte permutieren:</p>
<pre><code>{ 1, 2, 3 }
{ 1, 3, 2 }
{ 2, 1, 3 }
...
</code></pre>
<p>Wie bekomme ich es aber hin, zwar nur einen Array aus beispielsweise 3 Stellen zu haben, aber eine dieser Stellen nicht nur 3 verschiedene Werte sondern z.b. 10 verschiedene Wert haben kann?</p>
<pre><code>{ 1, 2, 3 }
{ 1, 2, 4 }
{ 1, 2, 5 }
{ 1, 2, 6 }
{ 1, 2, 7 }
...
{ 7, 8, 3 }
...
</code></pre>
<p>Ich habe vor eine Zeichenkette mit beliebiger Länge und einem Charset ebenfalls beliebiger Länge auf diese Weise zu permutieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code>&quot;abcdefghijklmnopqrstuvwxyz&quot;
</code></pre>
<p>jetzt will ich eine zeichenkette beliebiger länge alle möglichen kombinationen aus diesem charset zuweisen</p>
<pre><code>&quot;abc&quot;
...
&quot;fxd&quot;
...
&quot;jxz&quot;
</code></pre>
<p>Jemand eine Idee wie man soetwas realisieren könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036561</guid><dc:creator><![CDATA[so_much_to_code_to]]></dc:creator><pubDate>Thu, 13 Apr 2006 09:04:20 GMT</pubDate></item><item><title><![CDATA[Reply to Permutation, Frage zu next_permutation on Thu, 13 Apr 2006 09:09:08 GMT]]></title><description><![CDATA[<p>Du könntest per next_permutation() alle Permutationen von a..z durchlaufen lassen und dann jeweils die ersten n Elemente daraus rausgreifen (das erzeugt aber einige Doppelvorkommen, die du irgendwie aussortieren mußt). Alternativ kannst du die einzelnen Kombinationen in einer rekursiven Schleifenstruktur zusammenstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036563</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 13 Apr 2006 09:09:08 GMT</pubDate></item><item><title><![CDATA[Reply to Permutation, Frage zu next_permutation on Thu, 13 Apr 2006 09:15:27 GMT]]></title><description><![CDATA[<p>Vielen Dank für deine Antwort <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Du könntest per next_permutation() alle Permutationen von a..z durchlaufen lassen und dann jeweils die ersten n Elemente daraus rausgreifen (das erzeugt aber einige Doppelvorkommen, die du irgendwie aussortieren mußt).</p>
</blockquote>
<p>So in etwa hatte ich mir das auch schon überlegt, aber dabei geht doch einiges an Performance verloren, oder?</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Alternativ kannst du die einzelnen Kombinationen in einer rekursiven Schleifenstruktur zusammenstellen.</p>
</blockquote>
<p>Hört sich interessant an, leider verstehe ich nicht ganz was du damit meinst.<br />
Falls du Zeit/Lust hast kannst du mir ja vielleicht das Vorgehen etwas genauer beschreiben bzw. eine Beispiel posten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036569</guid><dc:creator><![CDATA[so_much_to_code_to]]></dc:creator><pubDate>Thu, 13 Apr 2006 09:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to Permutation, Frage zu next_permutation on Thu, 13 Apr 2006 09:30:48 GMT]]></title><description><![CDATA[<p>Ich meinte damit, daß du nacheinander für jede Position alle möglichen Werte durchprobieren solltest:</p>
<pre><code class="language-cpp">void get_comb(sbeg,send,tbeg,tpos,tend)
{
  if(tpos==tend)
  {
    // verarbeite [tbeg,tend[;
    return;
  }
  for(spos=sbeg;spos!=send;++spos)
    if(find(tbeg,tpos,*spos)==tpos)
    {
      *tpos=*spos;
      get_comb(sbeg,send,tbeg,tpos+1,tend);
    }
}
</code></pre>
<p>(ohne Garantie)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036577</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 13 Apr 2006 09:30:48 GMT</pubDate></item></channel></rss>