<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>アルゴリズム on kenji.blog</title><link>http://kenji.blog/de/tags/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0/</link><description>Recent content in アルゴリズム on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>kenjinote</copyright><lastBuildDate>Tue, 15 Jul 2025 18:03:03 +0900</lastBuildDate><atom:link href="http://kenji.blog/de/tags/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0/index.xml" rel="self" type="application/rss+xml"/><item><title>コラッツ予想</title><link>http://kenji.blog/de/p/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E4%BA%88%E6%83%B3/</link><pubDate>Tue, 15 Jul 2025 18:03:03 +0900</pubDate><guid>http://kenji.blog/de/p/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E4%BA%88%E6%83%B3/</guid><description>&lt;img src="http://kenji.blog/p/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E4%BA%88%E6%83%B3/img.png" alt="Featured image of post コラッツ予想" />&lt;h1 id="stimmt-es-dass-jede-zahl-am-ende-zu-1-wird--spielen-mit-der-collatz-vermutung">&amp;ldquo;Stimmt es, dass jede Zahl am Ende zu 1 wird?&amp;rdquo; ── Spielen mit der Collatz-Vermutung
&lt;/h1>&lt;p>Hallo! Hier ist kenji.&lt;/p>
&lt;p>Wenn man plötzlich hört &amp;ldquo;eine Regel, bei der jede Zahl schließlich zu 1 wird&amp;rdquo;,
klingt das nicht ein bisschen seltsam?&lt;/p>
&lt;blockquote>
&lt;p>Zum Beispiel 19, 87 oder auch 1000000.
Wenn man die Zahlen nach einer bestimmten Regel manipuliert, konvergieren sie aus irgendeinem Grund am Ende gegen &amp;ldquo;1&amp;rdquo;.&lt;/p>
&lt;/blockquote>
&lt;p>Diese traumhafte Geschichte ist die ** Collatz-Vermutung (Collatz Conjecture) **.&lt;/p>
&lt;hr>
&lt;h2 id="was-ist-die-collatz-vermutung-eigentlich">Was ist die Collatz-Vermutung eigentlich?
&lt;/h2>&lt;p>Zuerst stelle ich die Regeln vor.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Start: Wähle eine beliebige ** positive ganze Zahl **.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Operation:&lt;/p>
&lt;ul>
&lt;li>Wenn sie gerade ist → halbiere sie (n → n / 2)&lt;/li>
&lt;li>Wenn sie ungerade ist → multipliziere mit 3 und addiere 1 (n → 3n + 1)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>Wenn man dies immer wieder wiederholt, ist es eine Vermutung, dass ** jede Zahl schließlich 1 erreicht **.&lt;/p>
&lt;p>Zum Beispiel, beginnend mit &lt;code>6&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Es wurde ordentlich &amp;ldquo;1&amp;rdquo;. Willkommen zurück!&lt;/p>
&lt;hr>
&lt;h2 id="machen-wir-es-mit-code-collatz-in-python">Machen wir es mit Code: Collatz in Python
&lt;/h2>&lt;p>Nun, in solchen Zeiten ist es schneller, mit Code zu testen!
Lassen Sie uns die &amp;ldquo;Collatz-Folge&amp;rdquo; in Python ausgeben.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">steps&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">steps&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">steps&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Beispiel: beginnend mit 19&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">19&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Bei Ausführung:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Es erreicht brillant die 1.
Obwohl es viele Umwege macht, erreicht es am Ende das Ziel!&lt;/p>
&lt;p>Übrigens, wenn Sie mit 29 beginnen, werden Sie auf die gleiche Weise 1 erreichen.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">29&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Bei Ausführung&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Wow, es dauert 111 Schritte!&lt;/p>
&lt;p>Und es gibt auch Szenen, in denen es unterwegs auf über 9000 anschwillt.
Es ist ein Muster, bei dem man einen verrückten Umweg macht, bevor man das Ziel erreicht.&lt;/p>
&lt;hr>
&lt;h2 id="und-was-ist-daran-so-toll">Und, was ist daran so toll?
&lt;/h2>&lt;p>Das Tolle an dieser Vermutung ist,&lt;/p>
&lt;blockquote>
&lt;p>** Obwohl es nicht bewiesen ist, scheint es, dass jede Zahl, die man versucht, zu 1 wird **&lt;/p>
&lt;/blockquote>
&lt;p>Das ist es.&lt;/p>
&lt;p>Äh? Und was ist mit 1 Billion oder 10 Billiarden&amp;hellip;?&lt;/p>
&lt;p>Für diejenigen, die so dachten: sehr scharfsinnig.
Tatsächlich wurde es mit Computern bis zu etwa &amp;ldquo;2 hoch 68&amp;rdquo;,
und ** alle haben 1 erreicht **. Unglaublich&amp;hellip;&lt;/p>
&lt;p>Aber ** es wurde nicht theoretisch bewiesen, dass &amp;ldquo;alle so sein werden&amp;rdquo; **.
Das ist ein sogenanntes &amp;ldquo;ungelöstes Problem&amp;rdquo; in der Welt der Mathematik.&lt;/p>
&lt;hr>
&lt;h2 id="wer-ist-herr-collatz">Wer ist Herr Collatz?
&lt;/h2>&lt;p>Wenn Sie bis hierher gelesen haben, fragen Sie sich wahrscheinlich: &amp;ldquo;Wer ist Collatz eigentlich?&amp;rdquo;.
Ich werde ihn richtig vorstellen!&lt;/p>
&lt;ul>
&lt;li>Name: ** Lothar Collatz (Lothar Collatz) **&lt;/li>
&lt;li>Nationalität: Deutschland&lt;/li>
&lt;li>Geburtsjahr: 1910 bis 1990&lt;/li>
&lt;li>Titel: Mathematiker (aktiv in den Bereichen Funktionalanalysis und Zahlentheorie)&lt;/li>
&lt;/ul>
&lt;p>Er schlug diese Vermutung 1937 vor,
und seither, seit über 80 Jahren, ** konnte niemand sie beweisen oder widerlegen **.&lt;/p>
&lt;p>Übrigens ist dieses Problem so einfach und doch so tiefgründig, dass
selbst Paul Erdős (super berühmter Mathematiker) so etwas sagte.&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Die Mathematik ist noch nicht reif für die Collatz-Vermutung&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>Mit anderen Worten, die Theorie, dass die Mathematik der Menschheit dieses Mysterium noch nicht eingeholt hat&amp;hellip;&lt;/p>
&lt;hr>
&lt;h2 id="schwierige-mathematische-formeln-sind-nicht-erforderlich">&amp;ldquo;Schwierige mathematische Formeln&amp;rdquo; sind nicht erforderlich
&lt;/h2>&lt;p>Das Gute an der Collatz-Vermutung ist, dass ** jeder mitspielen kann **.&lt;/p>
&lt;p>Man kann es mit Papier und Stift machen.
Wenn man den Code in Python schreibt, kann man ihn automatisch testen.
Und dennoch ** nehmen ihn Spitzenmathematiker ernst **.&lt;/p>
&lt;p>Irgendwie aufregend, nicht wahr?&lt;/p>
&lt;hr>
&lt;h2 id="bonus-code-um-alles-auf-einmal-zu-testen">Bonus: Code, um alles auf einmal zu testen
&lt;/h2>&lt;p>Ich werde auch einen Code posten, um verschiedene Zahlen gleichzeitig zu testen.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">21&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">steps&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">steps&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> (Schritte: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">steps&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">)&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Dadurch erhalten wir die Collatz-Folgen von &amp;ldquo;1 bis 20&amp;rdquo; auf einmal.&lt;/p>
&lt;hr>
&lt;h2 id="fazit-diese-welt-ist-doch-mysteriös">Fazit: Diese Welt ist doch mysteriös
&lt;/h2>&lt;p>Das ist also die Collatz-Vermutung.&lt;/p>
&lt;ul>
&lt;li>Obwohl es super einfach ist&lt;/li>
&lt;li>Niemand kann es beweisen&lt;/li>
&lt;li>Ein großes Problem in der Welt der Mathematik&lt;/li>
&lt;/ul>
&lt;p>Es war eine Existenz wie eine Masse von Mysterien.&lt;/p>
&lt;p>Sogar Programmieranfänger können es versuchen, also spielen Sie bitte damit!&lt;/p>
&lt;hr>
&lt;h2 id="empfohlene-links-für-interessierte">Empfohlene Links (für Interessierte)
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://ja.wikipedia.org/wiki/%e3%82%b3%e3%83%a9%e3%83%83%e3%83%84%e4%ba%88%e6%83%b3" target="_blank" rel="noopener"
>Wikipedia: Collatz-Vermutung&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://arxiv.org/abs/1909.03562" target="_blank" rel="noopener"
>Terence Tao Paper (Englisch)&lt;/a>&lt;/li>
&lt;li>Es macht auch Spaß, eine visualisierte Version in Python zu erstellen! (Ich werde eine machen, wenn es gewünscht wird)&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>Wenn Sie mehr über dieses Material &amp;ldquo;Mysteriöse Mathematik x Programmierung&amp;rdquo; erfahren möchten,
zögern Sie nicht, anzufragen und zu sagen: &amp;ldquo;Bring mir mehr bei&amp;rdquo;.
Schließlich werde ich verschiedene Dinge wie die Riemann-Vermutung und Primzahlen vorstellen!&lt;/p>
&lt;hr>
&lt;p>📮Ende!&lt;/p>
&lt;hr></description></item></channel></rss>