<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=M%C3%A8todes_o_esquemes_algor%C3%ADtmics</id>
	<title>Mètodes o esquemes algorítmics - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=M%C3%A8todes_o_esquemes_algor%C3%ADtmics"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A8todes_o_esquemes_algor%C3%ADtmics&amp;action=history"/>
	<updated>2026-08-30T12:04:23Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A8todes_o_esquemes_algor%C3%ADtmics&amp;diff=256321&amp;oldid=prev</id>
		<title>Joan: /* Torres de Hanoi */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A8todes_o_esquemes_algor%C3%ADtmics&amp;diff=256321&amp;oldid=prev"/>
		<updated>2017-06-06T15:33:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Torres de Hanoi&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Introducció=&lt;br /&gt;
Es tracta de mostrar els dissenys típics que s'estudien en algorismes, i exemples clàssics i il.lustratius.&lt;br /&gt;
*https://es.wikipedia.org/wiki/Algoritmo&lt;br /&gt;
*https://es.wikipedia.org/wiki/Dise%C3%B1o_de_algoritmos&lt;br /&gt;
*https://es.wikipedia.org/wiki/Categor%C3%ADa:Algoritmos&lt;br /&gt;
=Classificació=&lt;br /&gt;
A grans trets, 3 tipus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-divide y vencerás (torres de hanoi)&lt;br /&gt;
-Vuelta atrás (cerca exhaustiva) (backtracking)&lt;br /&gt;
-voraç (greedy algorythm)&lt;br /&gt;
	-ramificació i poda&lt;br /&gt;
	-temps...&lt;br /&gt;
	-algoritmo dijkstra, prim, kruskal, floyd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Divide y vencerás=&lt;br /&gt;
==Torres de Hanoi==&lt;br /&gt;
*https://ca.wikipedia.org/wiki/Torres_de_Hanoi&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// g++ -o torres_hanoi torres_hanoi.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void hanoi(int n, char origen, char desti, char aux) {&lt;br /&gt;
    if(n != 0) {&lt;br /&gt;
        hanoi(n-1,origen,aux,desti);&lt;br /&gt;
        cout &amp;lt;&amp;lt; origen &amp;lt;&amp;lt; &amp;quot; =&amp;gt; &amp;quot; &amp;lt;&amp;lt; desti &amp;lt;&amp;lt; endl;&lt;br /&gt;
        hanoi(n-1,aux, desti, origen); &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int n;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Introdueix el nombre de discs: &amp;quot;;&lt;br /&gt;
    cin &amp;gt;&amp;gt; n;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Els moviments que s'han de fer:\n&amp;quot;;&lt;br /&gt;
    hanoi(n,'A','C','B'); // transfereix n discos de A a C utilitzant B&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ g++ -o torres_hanoi torres_hanoi.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Millorant la sortida per pantalla per tal de què quedi clara la recursivitat:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// g++ -o torres_hanoi torres_hanoi.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int num;&lt;br /&gt;
&lt;br /&gt;
void hanoi(int n, char origen, char desti, char aux) {&lt;br /&gt;
    if(n != 0) {&lt;br /&gt;
        for (int i=0; i &amp;lt; num-n; i++) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;hanoi(&amp;quot; &amp;lt;&amp;lt; n-1 &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; origen &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; desti &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; aux &amp;lt;&amp;lt; &amp;quot;)&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
        hanoi(n-1,origen,aux,desti);&lt;br /&gt;
        cout &amp;lt;&amp;lt; origen &amp;lt;&amp;lt; &amp;quot; =&amp;gt; &amp;quot; &amp;lt;&amp;lt; desti &amp;lt;&amp;lt; endl;&lt;br /&gt;
        hanoi(n-1,aux, desti, origen); &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Introdueix el nombre de discs: &amp;quot;;&lt;br /&gt;
    cin &amp;gt;&amp;gt; num;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Els moviments que s'han de fer:\n&amp;quot;;&lt;br /&gt;
    hanoi(num,'A','C','B'); // transfereix n discos de A a C utilitzant B&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I el resultat per 3 i 4 discs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Introdueix el nombre de discs: 3&lt;br /&gt;
Els moviments que s'han de fer:&lt;br /&gt;
hanoi(2, A, C, B)&lt;br /&gt;
	hanoi(1, A, B, C)&lt;br /&gt;
		hanoi(0, A, C, B)&lt;br /&gt;
A =&amp;gt; C&lt;br /&gt;
		hanoi(0, A, C, B)&lt;br /&gt;
A =&amp;gt; B&lt;br /&gt;
	hanoi(1, A, B, C)&lt;br /&gt;
		hanoi(0, C, B, A)&lt;br /&gt;
C =&amp;gt; B&lt;br /&gt;
		hanoi(0, C, B, A)&lt;br /&gt;
A =&amp;gt; C&lt;br /&gt;
hanoi(2, A, C, B)&lt;br /&gt;
	hanoi(1, B, C, A)&lt;br /&gt;
		hanoi(0, B, A, C)&lt;br /&gt;
B =&amp;gt; A&lt;br /&gt;
		hanoi(0, B, A, C)&lt;br /&gt;
B =&amp;gt; C&lt;br /&gt;
	hanoi(1, B, C, A)&lt;br /&gt;
		hanoi(0, A, C, B)&lt;br /&gt;
A =&amp;gt; C&lt;br /&gt;
		hanoi(0, A, C, B)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Introdueix el nombre de discs: 4&lt;br /&gt;
Els moviments que s'han de fer:&lt;br /&gt;
hanoi(3, A, C, B)&lt;br /&gt;
	hanoi(2, A, B, C)&lt;br /&gt;
		hanoi(1, A, C, B)&lt;br /&gt;
			hanoi(0, A, B, C)&lt;br /&gt;
A =&amp;gt; B&lt;br /&gt;
			hanoi(0, A, B, C)&lt;br /&gt;
A =&amp;gt; C&lt;br /&gt;
		hanoi(1, A, C, B)&lt;br /&gt;
			hanoi(0, B, C, A)&lt;br /&gt;
B =&amp;gt; C&lt;br /&gt;
			hanoi(0, B, C, A)&lt;br /&gt;
A =&amp;gt; B&lt;br /&gt;
	hanoi(2, A, B, C)&lt;br /&gt;
		hanoi(1, C, B, A)&lt;br /&gt;
			hanoi(0, C, A, B)&lt;br /&gt;
C =&amp;gt; A&lt;br /&gt;
			hanoi(0, C, A, B)&lt;br /&gt;
C =&amp;gt; B&lt;br /&gt;
		hanoi(1, C, B, A)&lt;br /&gt;
			hanoi(0, A, B, C)&lt;br /&gt;
A =&amp;gt; B&lt;br /&gt;
			hanoi(0, A, B, C)&lt;br /&gt;
A =&amp;gt; C&lt;br /&gt;
hanoi(3, A, C, B)&lt;br /&gt;
	hanoi(2, B, C, A)&lt;br /&gt;
		hanoi(1, B, A, C)&lt;br /&gt;
			hanoi(0, B, C, A)&lt;br /&gt;
B =&amp;gt; C&lt;br /&gt;
			hanoi(0, B, C, A)&lt;br /&gt;
B =&amp;gt; A&lt;br /&gt;
		hanoi(1, B, A, C)&lt;br /&gt;
			hanoi(0, C, A, B)&lt;br /&gt;
C =&amp;gt; A&lt;br /&gt;
			hanoi(0, C, A, B)&lt;br /&gt;
B =&amp;gt; C&lt;br /&gt;
	hanoi(2, B, C, A)&lt;br /&gt;
		hanoi(1, A, C, B)&lt;br /&gt;
			hanoi(0, A, B, C)&lt;br /&gt;
A =&amp;gt; B&lt;br /&gt;
			hanoi(0, A, B, C)&lt;br /&gt;
A =&amp;gt; C&lt;br /&gt;
		hanoi(1, A, C, B)&lt;br /&gt;
			hanoi(0, B, C, A)&lt;br /&gt;
B =&amp;gt; C&lt;br /&gt;
			hanoi(0, B, C, A)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Backtrackin, vuelta atrás=&lt;br /&gt;
*https://es.wikipedia.org/wiki/Vuelta_atr%C3%A1s&lt;br /&gt;
Exemples:&lt;br /&gt;
*Sudoku&lt;br /&gt;
*Problema de los movimientos de un caballo&lt;br /&gt;
*Las ocho reinas&lt;br /&gt;
=Algoritmes voraços, greedy algorythms=&lt;br /&gt;
*https://en.wikipedia.org/wiki/Greedy_algorithm&lt;br /&gt;
{{Autor}}, juny 2017&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>