<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8645253172814000233</id><updated>2012-01-31T06:54:33.146-08:00</updated><category term='Generalized Riemann Hypothesis'/><category term='problema 3x+1 - Collatz'/><category term='Forme generatrici di Numeri primi e Dirichlet'/><category term='RSA sotto attacco?'/><category term='ipotesi di Riemann'/><category term='algoritmi polinomiali'/><category term='Quadratic sieve'/><category term='AKS un algoritmo formidabile'/><category term='L&apos;infinità di particolari numeri primi'/><title type='text'>Block Notes Matematico</title><subtitle type='html'>Block Notes Matematico è un'area "Math building block" per matematici e appassionati.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default?start-index=101&amp;max-results=100'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>102</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1992434292578365654</id><published>2012-01-31T03:01:00.000-08:00</published><updated>2012-01-31T03:01:51.032-08:00</updated><title type='text'></title><content type='html'>&lt;b&gt;Quadrati di numeri pari&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Lemma&lt;br /&gt;Un quadrato pari è sempre un numero abbondante.&lt;br /&gt;&lt;br /&gt;Dim.&lt;br /&gt;Per definizione di quadrato pari è:&lt;br /&gt;n = (2m)^2 = 4m^2&lt;br /&gt;i suoi divisori sono quindi almeno:&lt;br /&gt;[1,2,4,m,2m,4m,m^2,2m^2] la cui somma è maggiore di 4m^2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1992434292578365654?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1992434292578365654/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2012/01/quadrati-di-numeri-pari-lemma-un.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1992434292578365654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1992434292578365654'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2012/01/quadrati-di-numeri-pari-lemma-un.html' title=''/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-2888555641797833993</id><published>2012-01-04T03:39:00.000-08:00</published><updated>2012-01-31T06:54:33.155-08:00</updated><title type='text'>Sperimentare in PARI/GP con i numeri lievemente eccedenti</title><content type='html'>Se definiamo i divisori di un numero n come il vettore d=[d1,d2,d3,...dk], escluso se stesso cioè dk&amp;lt;&amp;gt;n, allora un numero n lievemente eccedente è tale che:&lt;br /&gt;&lt;br /&gt;s=sum(i=1,k,di)=n+1&lt;br /&gt;&lt;br /&gt;I numeri lievemente eccedenti finora non sono mai stati trovati.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lo studio "SOME RESULTS CONCERNING QUASIPERFECT NUMBERS - PETER HAGIS, JR. and GRAEME L. COHEN" mostra che se i numeri lievemente eccedenti esistessero sono al disopra di 10^35 e con non meno di 7 divisori&amp;nbsp;oppure se 3 non è divisore di n al di sopra di 10^40 con non meno di 9 divisori.&lt;br /&gt;&lt;br /&gt;Un nostro Teorema sull'argomento, &lt;b&gt;è stato ritirato &lt;/b&gt;per&amp;nbsp;degli errori, anche se CNR Solar lo marca con stato "Retired" ma ne dà ancora visibilità su INTERNET.&lt;br /&gt;&lt;br /&gt;Il concetto dietro ad esso, di dimostrazione per assurdo, lo riteniamo ancora valido, ma la dimostrazione non è così banale come ci accorgeremo dall'analisi successiva, che rendiamo nota per stimolare gli appassionati di Teoria dei Numeri elementare a cercare una soluzione.&lt;br /&gt;&lt;br /&gt;L'analisi è un tentativo di verificare se esistono metodi semplici circa la dimostrazione della NON esistenza.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un semplice programmino PARI/GP per trovare un contro-esempio di esistenza è il seguente: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NLE(start=1,end=1000)= local(i=0, j=0,d=0); {&lt;br /&gt;for(i=1,end,&lt;br /&gt;d = divisors(i);&lt;br /&gt;s=sum(j=start,length(d)-1,d[j]);&lt;br /&gt;if(s==i+1,&lt;br /&gt;print(i," è un numero lievemente eccedente");&lt;br /&gt;);&lt;br /&gt;d=0; s=0;&lt;br /&gt;);&lt;br /&gt;print(" Fine ricerca tra n=",start, " e n=", end);&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Analisi per induzione&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Iniziamo un'analisi per induzione, partendo da un caso semplice.&lt;br /&gt;&lt;br /&gt;Un numero lievemente eccedente con almeno 3 divisori deve rispettare che:&lt;br /&gt;d1+d2+d3=n+1&lt;br /&gt;&lt;br /&gt;ovvero &lt;br /&gt;d2+d3=n&lt;br /&gt;&lt;br /&gt;Poichè d3&amp;gt;d2 allora possiamo porre che:&lt;br /&gt;d3=d2+k&lt;br /&gt;da cui:&lt;br /&gt;d2+d2+k=n&lt;br /&gt;d2 = (n-k)/2 (a)&lt;br /&gt;&lt;br /&gt;Poichè d2 è intero, n e k devono essere entrambi pari o entrambi dispari, altrimenti d2 non è intero ed è una contraddizione.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br class="Apple-interchange-newline" /&gt;Lemma delle potenze&lt;/b&gt;&lt;br /&gt;Un numero n=k^m con k&amp;gt;1 e dispari ed m&amp;gt;1 è difettivo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dim.&lt;br /&gt;&lt;br /&gt;Se n=k^m, allora i suoi divisori propri, escluso n, sono [1,k,k^2,...,k^(m-1)]&lt;br /&gt;&lt;br /&gt;Facciamo ora una dimostrazione per induzione.&lt;br /&gt;&lt;br /&gt;Supponiamo m=3, allora i divisori propri sono [1,k,k^2]&lt;br /&gt;&lt;br /&gt;Ora è evidente che &amp;nbsp;k^2+k+1 &amp;lt; k^3 = k^2 * k.&lt;br /&gt;&lt;br /&gt;Generalizzando è che k^(m-1)+k^(m-2)+...+k+1 &amp;lt; k^m = n, il che dimostra il Lemma.&lt;br /&gt;&lt;div&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Proprietà&lt;/b&gt;&lt;br /&gt;(a) n non può essere potenza di 2 o k qualsiasi perchè n sarebbe difettivo. La proprietà discende dal Lemma delle potenze&lt;br /&gt;(b) n dispari non può essere primo ma composto perchè avrebbe come divisori solo 1 e sè stesso che va escluso, cioè si otterrebbe un difettivo&lt;br /&gt;(c) n pari non può essere perfetto perchè per i perfetti deve essere d2+d3=n-1 -&amp;gt; d2+d2+k = n-1 -&amp;gt; n-1-k/2 = d2 (b) mentre per i lievemente eccedenti deve essere vera la (a) che è diversa dalla (b)&lt;br /&gt;(d) n pari con 3 divisori di cui almeno uno dispari, oltre a 1, allora d2 NON sarebbe intero&lt;br /&gt;(e) n dispari con soli 3 divisori di cui d1=1 è difettivo, anche nel caso di potenze di numeri primi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lemma dei 3 divisori propri&lt;/b&gt;&lt;br /&gt;Un numero n con 3 divisori propri, escluso n, non può essere lievemente eccedente&lt;br /&gt;&lt;br /&gt;Dim.&lt;br /&gt;Le proprietà (a),(c),(d),(e) non consentono di avere un numero n con 3 divisori propri che risulta un numero lievemente eccedente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Esempi&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;n=2^3=8 &lt;br /&gt;d=[1,2,4]&lt;br /&gt;d1=1, d2=2, d3=2+2-&amp;gt;k=2&lt;br /&gt;&lt;br /&gt;d2 è intero ma essendo il numero potenza di 2 è difettivo&lt;br /&gt;&lt;br /&gt;n=10&lt;br /&gt;d=[1,2,5]&lt;br /&gt;d1=1,d2=2,d3=5 se d3=2+k-&amp;gt;k=3&lt;br /&gt;d2=(n-k)/2 non è intero &lt;br /&gt;&lt;br /&gt;n=22&lt;br /&gt;d=[1,2,11]&lt;br /&gt;d1=1,d2=2,d3=2+9-&amp;gt;k=9&lt;br /&gt;(n-k)/2 non è intero&lt;br /&gt;&lt;br /&gt;n=77&lt;br /&gt;d=[1,7,11]&lt;br /&gt;s=19&lt;br /&gt;&lt;br /&gt;d1=1,d2=7,d3=7+4-&amp;gt;k=4&lt;br /&gt;(n-k)/2 non è intero&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tutti i semi-primi o numeri RSA sono di questo tipo, con 3 divisori. Nessuno di essi può essere un numero lievemente abbondante.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Supponiamo ora che n abbia d=4 divisori, per cui&lt;br /&gt;d2+d3+d4=n&lt;br /&gt;d3 = d2 + k1&lt;br /&gt;d4 = d2 + k2 con k2&amp;gt;k1&lt;br /&gt;&lt;br /&gt;d2 + d2 + k1 + d2 + k2 = n&lt;br /&gt;d2 = [n - (k1+k2)]/3&lt;br /&gt;&lt;br /&gt;Questo vuol dire che per essere d2 intero il numeratore deve essere multiplo di 3.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Generalizzazione&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In generale per d divisori, escluso n, è:&lt;br /&gt;&lt;br /&gt;d2 = n - Q / (d-1) (1)&lt;br /&gt;&lt;br /&gt;dove Q = Sum(ki,i=1..d-2)&lt;br /&gt;&lt;br /&gt;ed n - Q deve essere multiplo di d-1 affinchè d2 sia intero.&lt;br /&gt;&lt;br /&gt;E' evidente che se n è pari e d2=2 , Q è pari se i è pari o dispari se i è dispari.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sperimentazione&lt;/strong&gt;&lt;br /&gt;Verifichiamo se esiste un Pattern che si presenta sempre.&lt;br /&gt;&lt;br /&gt;Se cerchiamo i numeri fino a M che hanno solo 4 divisori, scopriamo che sono solo potenze di numeri primi quindi difettivi&lt;br /&gt;&lt;br /&gt;M=100000&lt;br /&gt;for(i=1,M,l=length(divisors(i))-1;if(l==4,print(i))); &lt;br /&gt;&lt;br /&gt;n=16 [1,2,4,8] potenza di 2 è difettivo&lt;br /&gt;n=81 [1,3,9,27] potenza di 3 è difettivo&lt;br /&gt;n=625 [1,5,25,125] potenza di 5 è difettivo&lt;br /&gt;n=2401 [1,7,49,243] potenza di 7 è difettivo &lt;br /&gt;n=14641 [1,11,121,1331] potenza di 11 è difettivo&lt;br /&gt;n=28561 [1,13,169,2197] potenza di 13&lt;br /&gt;n=83521 [1,17,289,4913] potenza di 17&lt;br /&gt;&lt;br /&gt;Inoltre qui&lt;br /&gt;n=16&lt;br /&gt;k1=2 k2=6&lt;br /&gt;&lt;br /&gt;Q = k1 + k2 = 8&lt;br /&gt;d - 1 = 3&lt;br /&gt;d2=(16 - 8) /3 non è intero&lt;br /&gt;&lt;br /&gt;n=81&lt;br /&gt;k1=6 k2=24&lt;br /&gt;Q = k1 + k2 = 30&lt;br /&gt;d - 1 = 3&lt;br /&gt;d2=(81 - 30) /3 non è intero&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lemma dei 4 divisori propri&lt;/b&gt;&lt;br /&gt;I numeri n con 4 divisori propri non possono essere numeri lievemente eccedenti.&lt;br /&gt;&lt;br /&gt;Dim.&lt;br /&gt;I numeri a 4 divisori propri sono solo potenze di numeri primi e per il Lemma delle potenze il numero non può essere un numero lievemente eccedente.&lt;br /&gt;&lt;br /&gt;Se cerchiamo i numeri fino a M con 5 divisori scopriamo che sono somma di potenze di numeri primi.&lt;br /&gt;&lt;br /&gt;Escludendo i perfetti che non rispettano la (1), se il numero di divisori di n è pari e sono in gioco tutte potenze di numeri primi allora n è difettivo o abbondante&lt;br /&gt;&lt;br /&gt;Se il numero di divisori di n è dispari e sono in gioco più numeri primi, con somme di potenze di numeri primi allora n è difettivo o abbondante&lt;br /&gt;&lt;br /&gt;Usiamo un programmino che cerca gli abbondanti&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SNA(start=1,end=1000)= local(i=0, j=0,d=0); {&lt;br /&gt;&lt;br /&gt;for(i=start,end,&lt;br /&gt;d = divisors(i);&lt;br /&gt;s=sum(j=1,length(d)-1,d[j]);&lt;br /&gt;if(s&amp;gt;i+1,&lt;br /&gt;&amp;nbsp;if( i%2==0, a=" pari ");&lt;br /&gt;&amp;nbsp;if( i%2!=0, a=" dispari ");&lt;br /&gt;print(i," è un numero abbondante", a, " con ", length(d)-1," divisori");&lt;br /&gt;);&lt;br /&gt;d=0; s=0;&lt;br /&gt;);&lt;br /&gt;print(" Fine ricerca tra n=", start, " e n=", end);&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Mentre un programmino che cerca un certo numero di divisori è il seguente&lt;br /&gt;SND(start=1,end=1000,adiv=5)= local(i=0, j=0,d=0); {&lt;br /&gt;&lt;br /&gt;for(i=start,end,&lt;br /&gt;d = divisors(i);&lt;br /&gt;if(adiv==length(d)-1,&lt;br /&gt;print(i," è un numero con ", length(d)-1," divisori");&lt;br /&gt;);&lt;br /&gt;d=0;&lt;br /&gt;);&lt;br /&gt;print(" Fine ricerca tra n=", start, " e n=", end);&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Esempi di numeri abbondanti&lt;/b&gt;&lt;br /&gt;es:12,18,20,24,30,36&lt;br /&gt;&lt;br /&gt;I numeri abbondanti non rispettano la (1), il risultato può essere non intero o negativo.&lt;br /&gt;&lt;br /&gt;n=12 [1,2,3,4,6]&lt;br /&gt;s=16&amp;gt;n&lt;br /&gt;d=5&lt;br /&gt;d-1=4&lt;br /&gt;Q=k1+k2+k3=7&lt;br /&gt;k1=1&lt;br /&gt;k2=2&lt;br /&gt;k3=4&lt;br /&gt;&lt;br /&gt;12-7/4 non è intero&lt;br /&gt;&lt;br /&gt;n=36 [1,2,3,4,6,9,12,18]&lt;br /&gt;s&amp;gt;36&lt;br /&gt;d=8&lt;br /&gt;d-1=7&lt;br /&gt;Q=k1+k2+k3+k4+k5+k6=40&lt;br /&gt;k1=1, k2=2, k3=4, k4=7, k5=10, k6=16&lt;br /&gt;&lt;br /&gt;36 - 40 /7 negativo&lt;br /&gt;&lt;br /&gt;Il primo numero abbondante dispari è 945 con 15 divisori.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Numeri pari perfetti&lt;/b&gt;&lt;br /&gt;es:&lt;br /&gt;n=28&lt;br /&gt;[1,2,4,7,14]&lt;br /&gt;la somma è s=28 è un numero perfetto&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusioni&lt;/strong&gt;&lt;br /&gt;I numeri pari non possono essere lievemente eccedenti, risultano solo perfetti, difettivi o abbondanti. I numeri lievemente eccedenti se esistono devono poter essere dispari e non numeri primi o potenza di un numero.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;L'analisi fatta potrebbe non essere esaustiva, al lettore attento la possibilità di segnalarmi controesempi ed&amp;nbsp;errori&amp;nbsp;per affinare l'analisi.&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-2888555641797833993?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/2888555641797833993/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2012/01/sperimentare-in-parigp-con-i-numeri.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2888555641797833993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2888555641797833993'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2012/01/sperimentare-in-parigp-con-i-numeri.html' title='Sperimentare in PARI/GP con i numeri lievemente eccedenti'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-195083017875055993</id><published>2011-12-06T22:41:00.000-08:00</published><updated>2011-12-06T22:41:11.946-08:00</updated><title type='text'>Zeta multipla</title><content type='html'>Oggi riprende interesse una vecchia strada esplorata dal Eulero e Goldbach sulla zeta multipla. L'interesse è in ambito della Fisica, delle forme modulari e di altri settori della matematica.&lt;br /&gt;&lt;br /&gt;Un articolo introduttivo dell'autore è al link:&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/74917403/Zeta-multipla"&gt;http://www.scribd.com/doc/74917403/Zeta-multipla&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-195083017875055993?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/195083017875055993/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/12/zeta-multipla.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/195083017875055993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/195083017875055993'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/12/zeta-multipla.html' title='Zeta multipla'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1222176042755001997</id><published>2011-12-02T04:35:00.000-08:00</published><updated>2011-12-02T04:35:28.202-08:00</updated><title type='text'>Zeta pari</title><content type='html'>Il giusto titolo del blog sarebbe forse stato "Relazioni tra RH generale dei numeri naturali, Zeta Dispari, Zeta Pari, Zeta di Riemann, Teorema di Voronin, ipotesi del continuo di Cantor", ma era un pò troppo lungo.&lt;br /&gt;&lt;br /&gt;Nel divagare tra le varie zeta con simulazioni e studio si è con l'articolo&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/74486449/ZetaPari"&gt;http://www.scribd.com/doc/74486449/ZetaPari&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;giunti a delle conclusioni affascinanti. L'autore non è un professionista o un accademico, ai lettori il vaglio di possibili errori. Ma se fosse vero e se l'uso di Maple non ci ha tradito, si sarebbe trovato un legame tra tutto ciò.&lt;br /&gt;&lt;br /&gt;Se con la zeta di Riemann si riesce ad approssimare o trattare (grazie al Teorema di Voronin e al fatto che insiemi mumerabili hanno gli stessi zero della zeta di Riemann) insiemi numerabili o di cardinalità alef 0, forse con la somma di infinite zeta di Riemann o le zeta di Riemann multiple si potrebbero trattare gli insiemi non numerabili o di cardinalità alef 1 ... Con la zeta di Riemann si spiega la infinità dei numeri primi, con la Zeta Pari quella dei pari, con Zeta Dispari quella dei dispari, ma si può dimostrare forse anche l'ipotesi del continuo di Cantor con le zeta multiple?&amp;nbsp; E' da approfondire e studiare. E' vero che la RH non è dimostrata ancora ma la zeta è una funzione stra-studiata e utilizzabile.&lt;br /&gt;&lt;br /&gt;Alla prox&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1222176042755001997?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1222176042755001997/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/12/zeta-pari.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1222176042755001997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1222176042755001997'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/12/zeta-pari.html' title='Zeta pari'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-5557704372150367669</id><published>2011-11-17T05:51:00.000-08:00</published><updated>2011-11-17T05:51:43.268-08:00</updated><title type='text'>Zeta dispari</title><content type='html'>Che succede nella formula di Eulero gli n sono solo i dispari e non tutti i numeri naturali?&lt;br /&gt;&lt;br /&gt;Che succede se nella serie dei dispari eliminiamo qualche dispari?&lt;br /&gt;&lt;br /&gt;Uno studio in tal senso è al link:&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/73013918/ZetaDispari"&gt;http://www.scribd.com/doc/73013918/ZetaDispari&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In questo breve studio si esamina la zeta ottenibile solo con i numeri dispari, che nel seguito definiamo&lt;br /&gt;come Zeta dispari.&lt;br /&gt;&lt;br /&gt;Si fa una semplice analisi in campo reale che mostra un evidente legame con la zeta di Eulero, si&lt;br /&gt;osservano i valori delle costanti e si analizza il tutto in campo complesso dove si osserva, eliminando&lt;br /&gt;determinati numeri dispari dalla serie, come gli zeri spariscono.&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-5557704372150367669?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/5557704372150367669/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/11/zeta-dispari.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5557704372150367669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5557704372150367669'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/11/zeta-dispari.html' title='Zeta dispari'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1131991594225820282</id><published>2011-11-13T02:37:00.000-08:00</published><updated>2011-11-13T02:37:12.176-08:00</updated><title type='text'>Zeta (s)fortunata</title><content type='html'>I numeri fortunati (Lucky Numbers) in Teoria dei numeri sono quei numeri naturali che discendono dal setaccio di Ulam. Diversi studi hanno evidenziato molte somiglianze di essi con i numeri primi: l'esistenza di un teorema analogo al teorema dei numeri primi, la densità, la RH, la GRH, Goldbach etc.&lt;br /&gt;&lt;br /&gt;A tal proposito si è provato a definire una nuova zeta, la zeta fortunata e a studiarla.&lt;br /&gt;&lt;br /&gt;Un articolo a tal proposito è al link:&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/72528163/Zeta-s-fortunata"&gt;http://www.scribd.com/doc/72528163/Zeta-s-fortunata&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1131991594225820282?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1131991594225820282/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/11/zeta-sfortunata.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1131991594225820282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1131991594225820282'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/11/zeta-sfortunata.html' title='Zeta (s)fortunata'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8602381832972215</id><published>2011-10-07T08:32:00.000-07:00</published><updated>2011-10-07T08:32:29.727-07:00</updated><title type='text'>criterio di Riesz,  il criterio di Baerz Duarte, ed altre RH equivalenti</title><content type='html'>Sulla zeta esistono anche lavori recenti e interessanti, come il criterio di Riesz, il criterio di Baerz Duarte, il Teorema di Voronin, la frattalità e il lavoro ed i Teoremi di Davide Schipani. &lt;br /&gt;&lt;br /&gt;Dall'ultimo lavoro è possibile ipotizzare una ulteriore criterio RH equivalente, esposto al link:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://www.scribd.com/doc/67749588/Criteri-di-Riesz-e-Baerz-Duarte-Teorema-di-Voronin-ed-altre-trasformazioni"&gt;http://www.scribd.com/doc/67749588/Criteri-di-Riesz-e-Baerz-Duarte-Teorema-di-Voronin-ed-altre-trasformazioni&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox. &lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8602381832972215?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8602381832972215/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/10/criterio-di-riesz-il-criterio-di-baerz.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8602381832972215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8602381832972215'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/10/criterio-di-riesz-il-criterio-di-baerz.html' title='criterio di Riesz,  il criterio di Baerz Duarte, ed altre RH equivalenti'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1187841807568839557</id><published>2011-10-04T01:10:00.000-07:00</published><updated>2011-10-04T01:13:57.617-07:00</updated><title type='text'>Metodi per lo studio della zeta di Riemann</title><content type='html'>Il Teorema di Godel, beffardo, sostiene che fin quando i matematici hanno costruito una impalcatura &lt;br /&gt;matematica coerente, possono esistere delle cose che con essa non sono dimostrabili.&lt;br /&gt;&lt;br /&gt;Questo oltre alla possibilità di non aver trovato un sofisticato metodo per poter dimostrare l'anello &lt;br /&gt;mancante.&lt;br /&gt;&lt;br /&gt;Nella teoria dei numeri analitica, spesso si ricorre ad altri settori per poter verificare se è possibile&lt;br /&gt;trovare nuovi procedimenti.&lt;br /&gt;&lt;br /&gt;L'ipotesi di Riemann è uno degli argomenti di tal genere: sulla RH esistono evidenze ma non si riesce a &lt;br /&gt;dimostrarlo come teorema. Inoltre in cento anni si sono scritti fiumi di pagine di ricerca e trovate molte&lt;br /&gt;RH equivalenti (a dire il vero sono oltre cento le RH equivalenti e tendono a crescere).&lt;br /&gt;&lt;br /&gt;Il metodo delle trasformazioni di Moebius è uno dei tanti che sono stati usati (vedi articolo al link&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/67257705/Il-metodo-delle-trasformazioni-per-le-RH-equivalenti"&gt;http://www.scribd.com/doc/67257705/Il-metodo-delle-trasformazioni-per-le-RH-equivalenti&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Il vantaggio di una RH equivalente è solo di poter fare un attacco indiretto alla RH, cercando un contro-esempio numerico, ma nel 99% dei casi non contribuisce alla dimostrazione della RH.&lt;br /&gt;&lt;br /&gt;L'alternativa è di "rivedere" ciò che è dato per assodato, rismontarlo e aggiungere se necessario dei Teoremi. &lt;br /&gt;&lt;br /&gt;Sulla RH si è in "sofferenza dimostrativa" a causa di due, tre cose: la simmetria, l'equazione funzionale e/o &lt;br /&gt;la funzione Gamma. Conosciamo davvero tutti i Teoremi su questi punti? E' proprio qui che è evidente che ci &lt;br /&gt;viene meno qualcosa che non aiuta a dimostrare che tutti gli zeri non banali sono sulla retta critica.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1187841807568839557?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1187841807568839557/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/10/metodi-per-lo-studio-della-zeta-di.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1187841807568839557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1187841807568839557'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/10/metodi-per-lo-studio-della-zeta-di.html' title='Metodi per lo studio della zeta di Riemann'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1561009994156527493</id><published>2011-09-24T09:12:00.000-07:00</published><updated>2011-09-24T09:13:00.404-07:00</updated><title type='text'>zeta di Riemann - le costanti di Stieltjes e il criterio di Li</title><content type='html'>Il criterio di Xiang-Jin Li è una RH equivalente, basata soprattutto sulle costanti di Stieltjes e sul concetto di trasformazione particolare di Mobius che consente di trasformare il piano complesso in modo che la retta critica si trasformi in un disco circolare. &lt;br /&gt;&lt;br /&gt;L'idea discende da Weil, ma pochi hanno saputa sfruttarla al meglio. &lt;br /&gt;&lt;br /&gt;Il criterio di Li costituisce un ulteriore tecnica di attacco indiretto all'ipotesi di Riemann, che sorniona e sorridente rimane ancora lì a scuotere la testa nei nostri confronti ...&lt;br /&gt;&lt;br /&gt;Un articolo sul criterio di Li è al link:&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/66153928/Zeta-di-Riemann-costanti-di-Stieltjes-e-il-criterio-di-Li"&gt;http://www.scribd.com/doc/66153928/Zeta-di-Riemann-costanti-di-Stieltjes-e-il-criterio-di-Li&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1561009994156527493?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1561009994156527493/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/09/zeta-di-riemann-le-costanti-di.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1561009994156527493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1561009994156527493'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/09/zeta-di-riemann-le-costanti-di.html' title='zeta di Riemann - le costanti di Stieltjes e il criterio di Li'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-5049682406121433080</id><published>2011-09-17T11:58:00.000-07:00</published><updated>2011-09-17T23:38:23.036-07:00</updated><title type='text'>Serie divergenti - zeta e sviluppo in serie di Eulero-Mac Lauren</title><content type='html'>Secondo Abel e Cesaro non valeva la pena approfondire le serie divergenti, poi si è scoperto che non è così.&lt;br /&gt;&lt;br /&gt;La zeta di Riemann permette oggi disinvoltamente di calcolare cose che sembrano bizzare: la serie infinita che somma tutti 1 si pensava che fosse divergente e, invece, converge ad un numero negativo!&lt;br /&gt;&lt;br /&gt;Come si analizzano queste serie, senza la zeta di Riemann? Il grande matematico Ramanujan ha lasciato nei suoi notebooks molte idee originali, ma soprattutto una grande matematica ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un articolo sull'argomento è al link:&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/65316487/Serie-bizzare-zeta-e-sviluppo-in-serie-di-Eulero-Mac-Lauren"&gt;http://www.scribd.com/doc/65316487/Serie-bizzare-zeta-e-sviluppo-in-serie-di-Eulero-Mac-Lauren&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-5049682406121433080?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/5049682406121433080/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/09/serie-divergenti-zeta-e-sviluppo-in.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5049682406121433080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5049682406121433080'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/09/serie-divergenti-zeta-e-sviluppo-in.html' title='Serie divergenti - zeta e sviluppo in serie di Eulero-Mac Lauren'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8753319460394011509</id><published>2011-09-12T02:23:00.000-07:00</published><updated>2011-09-12T23:19:59.818-07:00</updated><title type='text'>Sotto il segno della zeta</title><content type='html'>Attualmente sono allo studio molte funzioni zeta oltre alla famosa zeta di Riemann: la zeta di Dedekind (importante per il gap di massa altro problema del millennio), la zeta di Selberg per le superfici di Riemann, la zeta di Ihara, zeta di Fibonacci, la zeta di Keith, la zeta Fattoriale, la zeta dei Primoriali, etc.&lt;br /&gt;&lt;br /&gt;La zeta di Ihara, ad esempio, ha grosso&amp;nbsp; interesse nei grafi e nelle sue possibili applicazioni (social network etc).&amp;nbsp; In tutte queste zeta&amp;nbsp; c'è sempre la traduzione matematica, in varie modalità, della ipotesi di Riemann.&lt;br /&gt;&lt;br /&gt;Esse sono studiate principalmente sia per trovare correlazioni con la zeta di Riemann, ma soprattutto per trovare nuove strade utili per la risoluzione del problema del millennio, ovvero l'ipotesi di Riemann (RH) o congettura di Riemann.&lt;br /&gt;&lt;br /&gt;Lo studio delle varie zeta e della zeta di Riemann sono legati a moltissime problematiche di Fisica e di altri settori: teoria delle stringhe, campi p-adici, gap di massa (Yang e Mills), gravità e frattali, teoria dei grafi, crittografia, fattorizzazione etc.&lt;br /&gt;&lt;br /&gt;Può darsi che la soluzione dell'ipotesi di Riemann richiederà ancora moltissimo tempo, ma sicuramente per motivi pratici di molti settori serve l'approfondimento ulteriore e continuo su queste tematiche.&lt;br /&gt;&lt;br /&gt;Uno studio sulla zeta fattoriale è al link:&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/64659653/ZetaFattoriale"&gt;http://www.scribd.com/doc/64659653/ZetaFattoriale &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8753319460394011509?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8753319460394011509/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/09/sotto-il-segno-della-zeta.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8753319460394011509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8753319460394011509'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/09/sotto-il-segno-della-zeta.html' title='Sotto il segno della zeta'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-2236535794206048472</id><published>2011-09-11T07:03:00.000-07:00</published><updated>2011-09-11T07:03:25.804-07:00</updated><title type='text'>La musica dei numeri primi</title><content type='html'>Esiste una armonia, una musica dei numeri primi? &lt;br /&gt;&lt;br /&gt;In realtà sì. Dal loro studio si evidenzia che esiste una forma con cui si distribuiscono nell'insieme dei numeri e che non è casuale.&lt;br /&gt;&lt;br /&gt;Un articolo divulgativo è al link:&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/64574400/MusicaDeiNumeriPrimi"&gt;http://www.scribd.com/doc/64574400/MusicaDeiNumeriPrimi &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Potrete ascoltare anche da un wav la musica di 100 zeri non banali dovuti all'espressione esplicita trovata da Riemann.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-2236535794206048472?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/2236535794206048472/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/09/la-musica-dei-numeri-primi.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2236535794206048472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2236535794206048472'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/09/la-musica-dei-numeri-primi.html' title='La musica dei numeri primi'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-3167618001857649481</id><published>2011-08-25T11:27:00.000-07:00</published><updated>2011-09-10T09:25:17.100-07:00</updated><title type='text'>Dai Numeri Primi all'ipotesi di Riemann, visti attraverso  "Maple"</title><content type='html'>Dopo una lunga sosta, eccoci di nuovo sulla pista di Riemann, vista attraverso uno strumento di analisi matematica veramente interessante: Maple.&lt;br /&gt;&lt;br /&gt;I matematici, gli studenti e gli appassionati, che dispongono di Maple, possono scaricare l'articolo da&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/63814615/Dai-numeri-primi-alla-zeta-di-Riemann-visti-attraverso-Maple"&gt;http://www.scribd.com/doc/63814615/Dai-numeri-primi-alla-zeta-di-Riemann-visti-attraverso-Maple&amp;nbsp;&lt;/a&gt; e organizzarsi un worksheet secondo l'articolo.&lt;br /&gt;&lt;br /&gt;Esso vi illustra a partire dalla legge di Gauss e il Teorema dei Numeri Primi (col Logaritmo integrale), tutto il percorso Maple, matematico e grafico, per assaporare le cognizioni dell'argomento. &lt;br /&gt;&lt;br /&gt;E' difficile che si trovino su INTERNET le modalità grafiche e matematiche necessarie per lavorare con Maple sulla zeta di Riemann.&lt;br /&gt;&lt;br /&gt;Il worksheet presentato è un semplice, ma non esaustivo, tentativo per diffondere tali informazioni in chiave Maple.&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-3167618001857649481?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/3167618001857649481/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/08/dai-numeri-primi-allipotesi-di-riemann.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3167618001857649481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3167618001857649481'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/08/dai-numeri-primi-allipotesi-di-riemann.html' title='Dai Numeri Primi all&apos;ipotesi di Riemann, visti attraverso  &quot;Maple&quot;'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-6776303474461707423</id><published>2011-06-26T12:01:00.000-07:00</published><updated>2011-06-26T12:01:12.558-07:00</updated><title type='text'>THE ZETA-FUNCTION OF RIEMANN</title><content type='html'>Un ottimo punto di inizio sulla zeta di Riemann e soprattutto un ottimo libro libero da scaricare, al link:&lt;br /&gt;&lt;a href="http://www.archive.org/details/zetafunctionofri032076mbp"&gt;http://www.archive.org/details/zetafunctionofri032076mbp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-6776303474461707423?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/6776303474461707423/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/zeta-function-of-riemann.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6776303474461707423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6776303474461707423'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/zeta-function-of-riemann.html' title='THE ZETA-FUNCTION OF RIEMANN'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-7669826330735301395</id><published>2011-06-19T10:40:00.000-07:00</published><updated>2011-06-19T10:42:59.220-07:00</updated><title type='text'>Tools di matematica evoluti ed open source</title><content type='html'>Se siete appassionati di teoria dei numeri e di PARI/GP e avete voglia di disporre di un ambiente con funzionalità ulteriormente avanzate e Open Source, consiglio di dare un'occhiata a SAGE, un progetto di notevole valore.&lt;br /&gt;&lt;br /&gt;Installare una ISO di SAGE su Windows XP/2000/Vista/7 non è difficile. Richiede i seguenti passi:&lt;br /&gt;1) Installare Oracle VirtualBox ultima versione&lt;a href="http://www.virtualbox.org/wiki/Downloads"&gt; http://www.virtualbox.org/wiki/Downloads&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; prelevando quella per Windows&lt;br /&gt;&lt;br /&gt;2) Prelevare un ISO funzionante di SAGE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.mirrorservice.org/sites/www.sagemath.org/index.html"&gt;http://www.mirrorservice.org/sites/www.sagemath.org/index.html&lt;/a&gt;&lt;br /&gt;&amp;nbsp; e prelevare Microsoft Windows LIVE CD&lt;br /&gt;&lt;br /&gt;3) Da Oracle VirtualBox fare:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New -&amp;gt; Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; Name inserire SAGE, Operating System inserire Other, Version inserire Other Unknown, Next, Base&lt;br /&gt;&amp;nbsp;&amp;nbsp; Memory Size selezionare 512 Mbyte&lt;br /&gt;&lt;br /&gt;4) Create New Hard Disk, Next, Dynamically expanding storage,Next, Selezionare una Location (una directory sul Desktop ad esempio Sage)&lt;br /&gt;&lt;br /&gt;5) Date una dimensione allo storage (2Gb o meno, tanto se lo avete definito dinamico gli da pochi Kbyte iniziali), Finish&lt;br /&gt;&lt;br /&gt;6) Start, click sulle videate fino ad arrivare a Select Installation Media e selezionare dove è l'ISO, Next e attendere i vari caricamenti fino a farla partire&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Attenzione&lt;/u&gt;: il tasto Ctrl a destra vi consente di uscire dall'ambiente mentre per entrare a usare il cursore interno basta un click di mouse&lt;br /&gt;&lt;br /&gt;7) Ora avete un ambiente Linux Puppy disponibile con SAGE.&lt;br /&gt;&lt;br /&gt;8) Dovete fare un pò di pratica priam con l'ambiente , poi seguite un Tutorial per l'uso ad esempio&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.sagemath.org/pdf/SageTutorial.pdf"&gt;http://www.sagemath.org/pdf/SageTutorial.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Buon divertimento &lt;br /&gt;&lt;br /&gt;P.S: Se sviluppate software ulteriore sulla zeta di Riemann, oppure ulteriori funzionalità grafiche da aggiungere a zeta.txt e lambert.txt fatemi sapere, posso pubblicare anche i vostri articoli se interessanti.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-7669826330735301395?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/7669826330735301395/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/tools-di-matematica-evoluti-ed-open.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7669826330735301395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7669826330735301395'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/tools-di-matematica-evoluti-ed-open.html' title='Tools di matematica evoluti ed open source'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-6902402292762778889</id><published>2011-06-18T08:19:00.000-07:00</published><updated>2011-06-18T08:19:22.537-07:00</updated><title type='text'>Irrazionali e zeri non banali della zeta di Riemann</title><content type='html'>Studiando gli zeri della zeta di Riemann, a nessun appassionato può sfuggire il valore che assumono le parte immaginarie degli zeri.&lt;br /&gt;&lt;br /&gt;Sono valori irrazionali, non si vedono periodicità. E' possibile avere evidenza se sono irrazionali algebrici o trascendenti? E' una sfida che ci si può porre.&lt;br /&gt;&lt;br /&gt;Mentre alcune costanti di Apery sono state dimostrate come irrazionali trascendenti e legate al famoso problema di Basilea (Vedi Sulle spalle dei giganti) , che sappiamo dire sugli zeri della zeta di Riemann?&lt;br /&gt;&lt;br /&gt;Una dimostrazione teorica, sotto forma di Teorema,&amp;nbsp; al momento non esiste, ma ci sono molti studi a tal proposito sia nel settore degli irrazionali (vedi Teoremi di Lioville, di Galoise, etc) che della zeta di Riemann.&lt;br /&gt;&lt;br /&gt;E' possibile avere evidenze numeriche che siano trascendenti? Un articolo in tal senso "Zeta di Riemann - trascendenza parte immaginaria zeri non banali" e l'ausilio di un coltellino svizzero come PARI/GP portano in tale direzione &lt;a href="http://www.scribd.com/doc/58150801/Zeta-di-Riemann-%E2%80%93-trascendenza-parte-immaginaria-zeri-non-banali"&gt;http://www.scribd.com/doc/58150801/Zeta-di-Riemann-%E2%80%93-trascendenza-parte-immaginaria-zeri-non-banali&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-6902402292762778889?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/6902402292762778889/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/irrazionali-e-zeri-non-banali-della.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6902402292762778889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6902402292762778889'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/irrazionali-e-zeri-non-banali-della.html' title='Irrazionali e zeri non banali della zeta di Riemann'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-2069226624881605779</id><published>2011-06-08T22:59:00.000-07:00</published><updated>2011-06-08T23:00:56.318-07:00</updated><title type='text'>Puzzle e numeri primi</title><content type='html'>Un puzzle è un gioco costituito da un disegno rettangolare, che viene suddiviso in N pezzi. Il totale N dei pezzi è dato dal prodotto di quelli presenti sul lato dell'altezza per quelli sulla base del rettangolo N=b*h.&lt;br /&gt;&lt;br /&gt;Il rettangolo del puzzle per essere "ben fatto" deve essere almeno di formato DIN, ovvero il rapporto tra b ed h deve essere pari almeno a 1,4 e non deve rappresentare una striscia, cioè uno dei lati non deve essere molto piccolo rispetto all'altro.&lt;br /&gt;&lt;br /&gt;Si scopre in questo modo che non è sempre possibile creare puzzle con un numero N qualsiasi di pezzi.&lt;br /&gt;&lt;br /&gt;Ad esempio non è possibile farlo per N=2000, nonostante in commercio troverete scatole con 2000 pezzi!&lt;br /&gt;&lt;br /&gt;Infatti N=2000 è scomponibile 2000=2^4 * 5^3, il che darebbe teoricamente possibili i seguenti prodotti:&lt;br /&gt;1*2000 = 2*1000 = 4*500 = 8*250 = 10*200 = 16*125 = 20*100 = 25*80 = 40*50&lt;br /&gt;&lt;br /&gt;Per evitare di ottenere una striscia, solo gli ultimi due prodotti sono interessanti; ma si scopre che il formato DIN non è rispettato; difatti 80/25 = 3,2&amp;nbsp; e 50/40=1,25.&lt;br /&gt;&lt;br /&gt;Con 1998 pezzi è possibile ottenere un puzzle: 1998 = 2*3^3*37 e 2*3^3/37 è circa 1,46&lt;br /&gt;&lt;br /&gt;Per cui se contate i pezzi di un puzzle dichiarato di 2000 pezzi è abbastanza probabile che ne contenga 1998, per cui non date la colpa a vostro figlio che ha perso 2 pezzi!&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-2069226624881605779?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/2069226624881605779/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/puzzle-e-numeri-primi.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2069226624881605779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2069226624881605779'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/puzzle-e-numeri-primi.html' title='Puzzle e numeri primi'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-3862529887363259852</id><published>2011-06-07T12:28:00.000-07:00</published><updated>2011-06-07T12:28:46.626-07:00</updated><title type='text'>Sistemi operativi embedded e Distro Linux</title><content type='html'>Uno dei settori di recente interesse sono i sistemi operativi customizzati, utili per creare sistemi di controllo&lt;br /&gt;e ludici oppure per telefonini, i palmari etc. Alcuni esempi sono costituiti da Xbox, i telefonini con sistemi &lt;br /&gt;operativi Linux-like, Android etc, i sistemi di controllo per piccole locomotive etc.&lt;br /&gt;&lt;br /&gt;Spesso tali sistemi operativi vengono integrati con nuovi componenti hw (tipicamente con PIC) con opportuno firmware, ovvero software progettato e sviluppato ad hoc per integrare il tutto. In altre situazioni si possono creare distro di sistemi operativi Linux per supportare dei Social Network (radiomatori, matematici, fisici, elettronici etc).&lt;br /&gt;&lt;br /&gt;Si può creare e assemblare un sistema operativo Open Source, come Linux? Certamente sì. Ogni studente e ogni professionista si è almeno divertito a farlo almeno una volta con i suoi amici. &lt;br /&gt;&lt;br /&gt;Occorre un pò di esperienza sistemistica e di compilazione C/C++ ma è adatto anche per imparare. Soprattutto serve pazienza e almeno 3-4 mesi per completare il tutto.&lt;br /&gt;&lt;br /&gt;Come si inizia?&lt;br /&gt;1 - Innanzitutto serve un buon PC di base con abbastanza RAM, un buon processore e un bel hard disk&lt;br /&gt;esterno magari.&lt;br /&gt;2- Procurarsi una macchina virtuale: efficace è quella Oracle VM Virtual Box&lt;br /&gt;3&amp;nbsp; Disporre dell'ultima versione del sistema operativo Linux preferito (Fedora 15 ad esempio) che servirà&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; per buildare e assemblare il nuovo sistema operativo &lt;br /&gt;4 - Procurarsi le specifiche di "Linux from Scratch" LFS e BLFS e scaricarsi i pdf relativi&lt;br /&gt;5 - Creare una macchina virtuale con espansione dinamica e darle un nome (quello del sistema operativo che volete creare).&amp;nbsp; Ad esempio con 512Mbyte per la memoria e 161 Gb del filesystem &lt;br /&gt;6 - il filesystem potrete montarlo come SATA aggiuntivo a Fedora &lt;br /&gt;7 - consiglio di scegliere ext4 come tipo di filesystem e creare almeno i partizionamenti application, swap e LFS&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Ad esempio &lt;br /&gt;161 Gb&lt;br /&gt;/application &amp;nbsp;&amp;nbsp;&amp;nbsp; 2Gb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /dev/sdb2&amp;nbsp; --&amp;gt; sda2 sul sistema reale&lt;br /&gt;/swap &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 1Gb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /dev/sdb3&amp;nbsp; swap &lt;br /&gt;/LFS&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 158G&amp;nbsp;&amp;nbsp;&amp;nbsp; /dev/sdb4&amp;nbsp; --&amp;gt; sda4 sul sistema reale&lt;br /&gt;&lt;br /&gt;mount solo di /LFS&amp;nbsp;&amp;nbsp; su /media/LFS fatto da root della macchina host o con Disk utility. e ricordatevi inizialmente anche dello swapon -v /dev/sdb3&amp;nbsp;&amp;nbsp; &lt;br /&gt;export LFS=/media/LFS&amp;nbsp;&amp;nbsp;&amp;nbsp; da root altrimenti non riconosce $LFS&lt;br /&gt;&lt;br /&gt;8 - scaricare i pacchetti consigliati per la build e seguire il manuale LFS poi quello BLFS&lt;br /&gt;&lt;br /&gt;Alla fine avrete una distribuzione Linux testuale e grafica. A questo punto occorre installare gli applicativi da supprortare per la Social Network desiderata. Attenzione che se rendete pubblica la distro Linux avrete l'obbligo morale di supportare gli aggiornamenti dei suioi pacchetti, meglio creare un gruppo su INTERNET che se ne occupa.&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-3862529887363259852?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/3862529887363259852/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/sistemi-operativi-embedded-e-distro.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3862529887363259852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3862529887363259852'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/06/sistemi-operativi-embedded-e-distro.html' title='Sistemi operativi embedded e Distro Linux'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-6839664261013639816</id><published>2011-03-05T03:00:00.000-08:00</published><updated>2011-03-06T09:03:26.935-08:00</updated><title type='text'>SAT, 2SAT, 3SAT e P versus NP</title><content type='html'>Uno dei problemi del millennio è, come abbiamo visto anche in blog precedenti, P=NP? Ci si chiede cioè, di fronte a problemi decisionali tipicamente NP, non risolvibili con algoritmi polinomiali (P) essendo per natura essi esponenziali con l'input come il problema dello zaino e tanti altri, se è possibile individuare degli algoritmi polinomiali (deterministici o non ) tali che si possa poi affermare, invece, che P=NP. Cook e Levin aprirono la strada col loro Teorema su queste tematiche ed una delle loro dimostrazioni riguardava i problemi SAT, cioè i problemi di "Soddisfacibilità booleana" (SAT) costituiti da AND di clausole, dove ogni clausola è un OR di letterali. Ad esempio il 2SAT ha un OR con 2 letterali e il 3SAT un OR con tre letterali.&lt;br /&gt;&lt;br /&gt;Per il 3SAT, ad esempio, il problema è di:&lt;br /&gt;1) verificare se esiste una soluzione TRUE per la funzione logica assegnata&lt;br /&gt;2) se la funzione logica esaminata è minimizzabile &lt;br /&gt;3) elencare le soluzioni delle funzione logica assegnata&lt;br /&gt;&lt;br /&gt;La sfida è di trovare, per fare questo, un algoritmo polinomiale. Un articolo su questo è su www.scribd.com/rosario_turco&lt;br /&gt;&lt;br /&gt;Provate a scrivere un algoritmo in PARI/GP e poi fatemi sapere ... Soprattutto considerate cosa succede all'aumentare del numero di letterali e la velocità del vostro algoritmo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-6839664261013639816?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/6839664261013639816/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/03/sat-2sat-3sat-e-p-versus-np.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6839664261013639816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6839664261013639816'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/03/sat-2sat-3sat-e-p-versus-np.html' title='SAT, 2SAT, 3SAT e P versus NP'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-3279536137625684803</id><published>2011-02-23T00:54:00.000-08:00</published><updated>2011-02-23T10:02:38.234-08:00</updated><title type='text'>Geometria integrale</title><content type='html'>Un settore molto interessante e moderno è la &lt;i&gt;Geometria integral&lt;/i&gt;e. E' nata alla fine del XX secolo e cerca di mettere insieme la geometria e le probabilità geometriche.&lt;br /&gt;&lt;br /&gt;E' un settore matematico di notevole interesse in campo biologico e medico. Su esso si basano le innovazioni&lt;br /&gt;e le nuove ricerche da cui sono nate la&lt;i&gt; tomografia assiale computerizzata&lt;/i&gt; (&lt;i&gt;TAC&lt;/i&gt;), la &lt;i&gt;risonanza magnetica&lt;/i&gt; (&lt;i&gt;RM&lt;/i&gt;), la recentissima &lt;i&gt;stereologia&lt;/i&gt; che è un insieme di metodi per esplorare lo spazio tridimensionale a partire dalla conoscenza di sezioni bidimensionali o proiezioni sui piani.&lt;br /&gt;&lt;br /&gt;La stereologia permette ad esempio di sapere il volume di un oggetto, il numero di particelle o la curvatura totale di una superfice. Molti sono i settori a cui già è legata come statistica, geometria, geometria non euclidea, medicina, geologia, geometria computazionale per le simulazioni 2D e 3D; molti altri potrebbero essere legati o&amp;nbsp; potrebbero sfruttarla (frattali, simulazioni n-D etc).&lt;br /&gt;&lt;br /&gt;Nel 1979 ad esempio il Nobel per la Medicina fu assegnato all'inglese &lt;i&gt;Godfrey Hounsfield&lt;/i&gt; per i suoi studi sulla TAC, basati sulla geometria integrale.&lt;br /&gt;&lt;br /&gt;Grazie al computer oggi sono risorte alcune materie dimenticate come la geometria discreta e combinatoria, adatta al computer data la sua natura discreta, a cui poi si aggiungono le più moderne geometria vettoriale, tensoriale e matriciale.&lt;br /&gt;&lt;br /&gt;Tale tipo di geometria è di notevole importanza anche nel CAD (Computer Aided Design) per il disegno e la progettazione (ingegneria, architetura etc) o per l'intelligenza artificiale e la robotica per mettere a punto sistemi di visione robotici o per la meteorologia, immagini satellitari etc.&lt;br /&gt;&lt;br /&gt;La &lt;i&gt;geometria integrale&lt;/i&gt; è nata ufficialmente nel Novecento con lo spagnolo &lt;i&gt;Luis Santalò &lt;/i&gt;(1911-2001), con la sua opera "&lt;i&gt;Geometria integrale e probabilità geometrica"&lt;/i&gt;. Tuttavia le primissime origini risalgono al Settecento con &lt;i&gt;Georges Louis Leclerc, conte di Buffon.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Leclerc scrisse il "&lt;i&gt;Supplemento alla Storia Naturale&lt;/i&gt;" al cui interno c'era il&amp;nbsp; "&lt;i&gt;Saggio di aritmetica morale&lt;/i&gt;", un suo tentativo di studiare la realtà umana attraverso la matematica. &lt;br /&gt;&lt;br /&gt;Se ci pensate non è molto diverso da quello che accade oggi, ricordate ad esempio le &lt;i&gt;puntate della serie televisiva Numbers&lt;/i&gt;?&lt;br /&gt;&lt;br /&gt;L'attore, che rappresentava un matematico, in diverse puntate cerca di matematizzare le emozioni ed i comportamenti umani, tenendo conto di statistica etc. Nè più nè meno di quello che iniziò a fare Leclerc.&lt;br /&gt;&lt;br /&gt;La geometria integrale nasce già nel saggio di Leclerc con uno dei problemi che propone (oggi risolto) e definito "L'ago di Buffon".&lt;br /&gt;&lt;br /&gt;"L'ago di Buffon" pone il seguente quesito:"Supponiamo un piano diviso in rette orizzontali (un foglio su cui ci sono tracciate rette parallele) e separate tra loro a distanza costante d, se lanciamo su esso un ago di lunghezza b, con b maggiore di 0 ma minore di d, &lt;d, ago="" che="" delle="" l="" la="" probabilità="" qual="" rette?="" tagli="" una="" è=""&gt;che probabilità c'è che l'ago intercetti una retta?"&lt;br /&gt;&lt;/d,&gt;&lt;b&gt;&lt;d, ago="" che="" delle="" l="" la="" probabilità="" qual="" rette?="" tagli="" una="" è=""&gt;&lt;br /&gt;&lt;/d,&gt;&lt;/b&gt;&lt;d, ago="" che="" delle="" l="" la="" probabilità="" qual="" rette?="" tagli="" una="" è=""&gt;L'esperimento va ripetuto con un certo numero di lanci dell'ago, proprio come se fosse un dado o una moneta. Ad ogni lancio l'ago potrebbe tagliare una retta o nessuna. La cosa straordinaria è che tali probabilità sono legate a pi greco!&lt;br /&gt;&lt;br /&gt;Se P è la probabilità intesa come rapporto tra numero di volte che l'ago interseca una retta v e numero di lanci n, si ha che:&lt;br /&gt;&lt;br /&gt;P=v/n e&amp;nbsp; se b è minore o uguale a d si ottiene P=v/n=2b/(d * pi greco)&lt;br /&gt;&lt;br /&gt;Leclerc quindi dimostrò con un lungo procedimento e correttamente che pi greco = 2nb/vd&lt;br /&gt;&lt;br /&gt;Facendo un numero notevole di lanci si riesce ad approssimare pi greco con un bel numero di cifre dopo la virgola. &lt;i&gt;Lazzaroni&lt;/i&gt; lanciò l'ago per 34.080 volte ottenendo pi greco = 3.1415929&lt;br /&gt;&lt;br /&gt;"L'ago di Buffon" suggerisce la possibilità di misurare oggetti geometrici come lunghezze, aree, volumi soprattutto laddove non si hanno molte informazioni certe e facendo uso della probabilità. Permette quindi anche di formalizzare concetti come la misura di rette,piani etc.&lt;br /&gt;&lt;br /&gt;Qua aggiungerei che la cosa non dipende nemmeno dal tipo di geometria che usiamo, potrebbe benissimo essere una &lt;i&gt;geometria non euclidea&lt;/i&gt; come quella di &lt;i&gt;Riemann&lt;/i&gt; ovvero una geometria sferica e quindi di interesse per la Fisica e molte altri settori scientifici. Ma esistono anche la &lt;i&gt;geometria ellittica&lt;/i&gt; e &lt;i&gt;iperbolica.&lt;/i&gt;&lt;/d,&gt;&lt;br /&gt;Ovviamente può essere interessante per le problematiche di fisica a n-dimensioni.&lt;br /&gt;&lt;br /&gt;Come si vede la geometria integrale, valorizza la geometria alla pari dell'aritmetica su problematiche di probabilità, di combinazioni, permutazioni etc. ed ha un vantaggio "visivo" ulteriore.&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-3279536137625684803?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/3279536137625684803/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/02/geometria-integrale.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3279536137625684803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3279536137625684803'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/02/geometria-integrale.html' title='Geometria integrale'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-7874680675987778223</id><published>2011-02-20T08:45:00.000-08:00</published><updated>2011-02-20T08:46:36.193-08:00</updated><title type='text'>In matematica non tutto è già noto</title><content type='html'>I criteri di divisibilità sono un tema della Teoria dei numeri, simpatico e utile e ovviamente sono dimostrabili le regole che nascono della divisibilità per 3, per 9 etc.&lt;br /&gt;&lt;br /&gt;Non crediate che si è messo il punto fine a questa tematica semplice ma interessante.&lt;br /&gt;&lt;br /&gt;Grandi cultori di queste tematiche furono: Leonerdo Fibonacci (Pisa: 1170-1250), Blaise Pascal (Francia: 1623-1662), Henri Poincarè (Francia: 1854-1912) solo per citarne alcuni tra i più noti. Anche molti altri &lt;br /&gt;italiani hanno concorso a queste tematiche.&lt;br /&gt;&lt;br /&gt;Vediamo nel seguito solo alcuni esempi di divisibilità.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Divisibilità per 7&lt;/b&gt;&lt;br /&gt;Una regola è di isolare l'ultima cifra del numero assegnato, raddoppiarla e sottrarla al numero rimanente di partenza. &lt;br /&gt;&lt;br /&gt;Se il risultato è 0 o multiplo di 7 il numero è divisivile per 7. Se il numero è grande reiterare il procedimento.&lt;br /&gt;&lt;br /&gt;Esempio&lt;br /&gt;105 -&amp;gt; 10_5 -&amp;gt; 5x2=10 10-10=0 quindi 105 è divisibile per 7&lt;br /&gt;&lt;br /&gt;394 -&amp;gt; 39_4 -&amp;gt; 4x2=8&amp;nbsp; 39-8=31 non è divisibile per 7&lt;br /&gt;&lt;br /&gt;12578 -&amp;gt; 1257_8 -&amp;gt; 8x2=16 1257-16=1241 124_1 -&amp;gt; 1x2=2 124-2=122 12_2 -&amp;gt; 2x2=4 12-4=8 8 non è divisibile per 7.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Divisibilità per 13&lt;/b&gt;&lt;br /&gt;E' divisibile per 13 se isolando l'ultima cifra e considerando il quadruplo di essa, sommando il risultato parziale ottenuto con la cifra rimasta di partenza, il risultato finale è divisibile per 13.&lt;br /&gt;&lt;br /&gt;Esempio&lt;br /&gt;169 -&amp;gt; 16_9 9x4=36 16+36=52 che è divisibile per 13&lt;br /&gt;943 -&amp;gt; 94_3 3x4=12 94+12=106 -&amp;gt; 10_6 6x4=24 10+24=34 non è divisibile per 13&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Divisibilità per 11 per numeri a n&amp;gt;2 cifre&lt;/b&gt;&lt;br /&gt;E' divisibile per 11 se isolando le ultime 2 cifre, e si sommano al numero rimanente precedente, il risultato è divisibile per 11.&lt;br /&gt;&lt;br /&gt;Esempio&lt;br /&gt;352&amp;nbsp; -&amp;gt; 3_52 3+52=55 divisibile per 11&lt;br /&gt;1052 -&amp;gt; 10_52 10+52=62 non è divisibile per 11. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Metodo classico divisibilità per 11&lt;/b&gt;&lt;br /&gt;Se alla somma delle cifre di posto dispari si sottrae la somma delle cifre di posto pari e il risultato è 0 o multiplo di 11 esiste la divisibilità per 11.&lt;br /&gt;&lt;br /&gt;Esempio precedente &lt;br /&gt;352 3+2=5 5-5=0 divisibilità per 11&lt;br /&gt;&lt;br /&gt;Esempio a molte cifre&lt;br /&gt;87635064 -&amp;gt; 8+6+5+6=25 7+3+0+4=14 25-14=11 divisibile per 11&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dimostrazione di divisibilità&lt;/b&gt;&lt;br /&gt;Ok, ma se dovreste dimostrarli che sono metodi corretti? Si usano le manipolazioni di prestigio algebriche!&lt;br /&gt;&lt;br /&gt;Facciamo un esempio con 11.&lt;br /&gt;&lt;br /&gt;Chiamiamo con a la cifra dell'unità, b quella delle decine, c le centinaia etc.&lt;br /&gt;&lt;br /&gt;N=a+10b+100c+1000d+...= a+10(b+10c+100d+...)&lt;br /&gt;&lt;br /&gt;Se da N ci sottraiamo 11(b+10c+100d+...) che è multiplo di 11, che succede?&lt;br /&gt;&lt;br /&gt;a+10(b+10c+100d+...)-11(b+10c+100d+...)=a-b-10(c+10d+...)&lt;br /&gt;&lt;br /&gt;Questo risultato sarebbe lo stesso resto di quello che si ottiene dividendo N per 11.&lt;br /&gt;&lt;br /&gt;Se a tale risultato ci sommiamo invece 11(c+10d+...) multiplo di 11 otteniamo adesso:&lt;br /&gt;&lt;br /&gt;a-b-10(c+10d+...)+11(c+10d+...)=a-b+c+10(d+...)&lt;br /&gt;&lt;br /&gt;Se proseguiamo a sottrarre 11(d+...) si ottiene:&lt;br /&gt;&lt;br /&gt;a-b+c-d+...&lt;br /&gt;&lt;br /&gt;cioè la regola di sopra di sommare le cifre di posto dispari tra loro e quelle pari tra loro, per poi sottrarre come dice la regola precedente.&lt;br /&gt;&lt;br /&gt;Si può dimostrare anche l'altro metodo di divisibilità per 11 basato sull'isolamento di 2 cifre (almeno decine e centinaia se sono 3 cifre). In tal caso N va scritto nel seguente modo:&lt;br /&gt;&lt;br /&gt;N = a + 100b + 10000c+...=a+100(b+100c+...)&lt;br /&gt;&lt;br /&gt;Ora sottriamo allora a N 99(b+100c+...) che è multiplo di 11&lt;br /&gt;&lt;br /&gt;a + 100b + 10000c+...=a+100(b+100c+...) - 99(b+100c+...)= a + b + 100(c+...)&lt;br /&gt;&lt;br /&gt;a questo possiamo sottrarre 99(c+...) divisibile per 11 e si ottiene&lt;br /&gt;&lt;br /&gt;a + b + c + ...&lt;br /&gt;&lt;br /&gt;Cioè si ottiene la regola N è divisibile per 11 se isolando le ultime 2 cifre, e si sommano al numero rimanente precedente, il risultato è divisibile per 11.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Divisibilità per 19&lt;/b&gt;&lt;br /&gt;Un numero è divisibile per 19 se le sue decine più il doppio delle sue unità danno un multiplo di 19.&lt;br /&gt;&lt;br /&gt;N=10x+y&lt;br /&gt;Abbiamo scritto y come unità e x è di peso 10 come decina.&lt;br /&gt;&lt;br /&gt;Se la regola è vera devo scrivere che N' = x+2y e deve essere multiplo di 19.&lt;br /&gt;&lt;br /&gt;A questo punto se facciamo&lt;br /&gt;10N' - N = 10(x+2y) - (10x + y) = 19y&lt;br /&gt;&lt;br /&gt;Quindi se N' è multiplo di 19 allora:&lt;br /&gt;N = 10N' - 19y&lt;br /&gt;N si divide esattamente per 19.&lt;br /&gt;&lt;br /&gt;Esempio &lt;br /&gt;38 -&amp;gt; 3+2x8=19 divisibile per 19&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-7874680675987778223?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/7874680675987778223/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/02/in-matematica-non-tutto-e-gia-noto.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7874680675987778223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7874680675987778223'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/02/in-matematica-non-tutto-e-gia-noto.html' title='In matematica non tutto è già noto'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-2807364944326387579</id><published>2011-02-13T00:14:00.000-08:00</published><updated>2011-02-13T09:34:31.620-08:00</updated><title type='text'>Le congetture e gli attacchi diretti e indiretti</title><content type='html'>Nella Teoria dei Numeri esistono varie congetture non ancora dimostrate, apparentemente semplici, ma di una complessità notevole se li si vuole realmente dimostrare con la matematica analitica.&lt;br /&gt;&lt;br /&gt;Un esempio notevole è il &lt;i&gt;Postulato di Bertrand&lt;/i&gt;, unico dimostrato (da &lt;i&gt;Chebyscev&lt;/i&gt;), che afferma nella sua versione semplice che tra n e 2n con n&amp;gt;1 esiste almeno un numero primo. Una volta dimostrato nell'Ottocento, successivamente si sono avute dimostrazioni più semplici di &lt;i&gt;Ramanujan&lt;/i&gt; e di &lt;i&gt;Paul Erdos&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Per comprendere come si fa una dimostrazione di una congettura come questa basta che date un'occhiata ad esempio a:&amp;nbsp; &lt;a href="http://it.wikipedia.org/wiki/Dimostrazione_del_postulato_di_Bertrand"&gt;http://it.wikipedia.org/wiki/Dimostrazione_del_postulato_di_Bertrand&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ebbene congetture più restrittive e legate tra loro sono la &lt;i&gt;congettura di Oppermann&lt;/i&gt; che afferma che tra n^2-n e n^2+n esistono almeno due numeri primi. C'è un effetto domino tra alcune congetture legate; ad esempio se si dimostrasse la &lt;i&gt;congettura di Cramer&lt;/i&gt;, anche la congettura di Oppermann sarebbe risolta, il che implicherebbe anche la soluzione della &lt;i&gt;congettura di Legendre&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Un legame esiste anche tra la &lt;i&gt;congettura di Andrica&lt;/i&gt; e quella di Cramer. Lo stesso postulato di Bertand è un caso particolare della congettura di Legendre. &lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Il postulato di Bertrand si potrebbe esprimere in una forma generalizzata&lt;/i&gt; come segue:&lt;br /&gt;&lt;br /&gt;Per ogni n&amp;gt;1 esiste sempre un numero primo tale che kn &amp;lt; p &amp;lt; (k+1)n&lt;br /&gt;&lt;br /&gt;Se k=1 abbiamo il postulato di Bertrand, se k=n abbiamo la congettura di Legendre.&lt;br /&gt;&lt;br /&gt;Per k=2 il postulato di Bertrand generalizzato è stato dimostrato da &lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;Bachraoui con la stessa tecnica di Erdos, con i coefficienti binomiali. Rimane da dimostrarlo per k&amp;gt;2.E questa è una strada da non trascurare per la dimostrazione finale.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La congettura di Legendre è la più affascinante ed afferma che tra (n+1)^2 e n^2 esiste almeno un numero&lt;br /&gt;primo.&lt;br /&gt;&lt;br /&gt;Il problema non è "se sono vere o meno" queste congetture. Non serve che qualcuno esca fuori e lo dichiari.&lt;br /&gt;Gli innumerevoli esempi e la ricerca di contro-esempi danno l'evidenza della verità su esse, come sulla &lt;br /&gt;congettura di Riemann.&lt;br /&gt;&lt;br /&gt;Il problema è proprio di trovare il giusto procedimento matematico analitico per dimostrarle vere. E' sempre accaduto che quando una congettura è stata risolta è emersa una nuova tecnica a vantaggio del progresso matematico. &lt;br /&gt;&lt;br /&gt;Diversi lettori mi hanno fatto domande sul cosa si intende dimostrare una congettura.&lt;br /&gt;&lt;br /&gt;Sicuramente dimostrare una congettura non è fare esempi, tabelle di numeri e calcoli con stime approssimate del Teorema dei Numeri Primi, queste sono tecniche di ricerca al massimo di contro-esempi o per stabilire una stima. Occorre, invece, partire dalla ipotesi della congettura e trovare un metodo con vari passaggi generalizzati, algebrici, geometrici,analitici o trigonometrici, in dipendenza del tipo di problema e proposizione che si sta affrontando, fino ad arrivare ad un risultato che confermi la tesi o la contraddice. Altrimenti non si è dimostrato niente, ma si è dato solo delle evidenze.&lt;br /&gt;&lt;br /&gt;Un modo economico diverso, è quello di progettare attacchi diretti e indiretti alle congetture per cercare, graficamente o numericamente, con del software sviluppato ad hoc da noi stessi, dei contro-esempi. Se si trova un solo contro-esempio sono false, in caso contrario rimane aperta ancora la ricerca della loro dimostrazione di verità.&lt;br /&gt;&lt;br /&gt;Gli attacchi diretti sono attacchi alla congettura nella sua forma principale. Un esempio di attacco diretto&lt;br /&gt;è l'articolo "Aggirandosi tra i plot della zeta di Riemann", dove sia numericamente che graficamente con del software si verifica la posizione degli zeri della zeta di Riemann.&lt;br /&gt;&lt;br /&gt;Un attacco indiretto è invece un attacco grafico e numerico, ad una congettura equivalente. Ad esempio per&lt;br /&gt;l'ipotesi di Riemann ci sono innumerevoli congetture RH equivalenti: &lt;i&gt;criterio di Robin&lt;/i&gt;, &lt;i&gt;criterio di Lagarias&lt;/i&gt;,&lt;br /&gt;&lt;i&gt;funzione di Liouville&lt;/i&gt;, &lt;i&gt;Frobenius&lt;/i&gt; etc. Nel caso di Riemann ce ne sono almeno una ventina e spesso ne nascono di nuove. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un esempio, invece, di proposta di dimostrazione è sempre quello dell'autore sulla zeta di Riemann.&lt;br /&gt;&lt;br /&gt;Per chi è interessato a tali tecniche, in tal caso occorre stilare la lista di tutte le congetture equivalenti, magari su Wikipedia, poi comprendere bene cosa dichiarano rigorosamente e cercare di attaccarle una dopo l'altra, per la ricerca di contro-esempi.&lt;br /&gt;&lt;br /&gt;Questa tecnica è più pratica e richiede meno conoscenze dimostrative matematiche: basta un solo contro-esempio per dimostrarle false. Spesso la scoperta del contro-esempio porta alla correzione della congettura o al suo definitivo abbandono.&lt;br /&gt;&lt;br /&gt;Con le tecniche di attacco&amp;nbsp; furono dimostrate false varie congetture (&lt;i&gt;Mertens&lt;/i&gt;, etc). Grossi nomi di utilizzatori di tecniche del genere sono &lt;i&gt;Alan Turing, Odlyzko&lt;/i&gt; etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Se l'attacco non dimostra la falsità con un contro-esempio, l'attacco è fallito e la congettura è ancora da&lt;br /&gt;dimostrare.&lt;br /&gt;&lt;br /&gt;Affinando queste tecniche di attacco si finisce, inevitabilmente, con lo scoprire un "comportamento nascosto" che non si conosceva. Ad esempio con la zeta di Riemann se non si fosse affrontata una cosa del genere non si conoscerebbero ora i punti di Gram ed altro etc.&lt;br /&gt;&lt;br /&gt;Spesso la dimostrazione, invece, è corretta ma non è stata fatta con i metodi analitici come si richiede per ottenere progressi sull'argomento (ad esempio nel campo delle funzioni complesse di variabili complesse o delle funzioni ellittiche), per cui alla fine è una soluzione minore o elementare, cioè è considerata solo una evidenza; perchè potrebbero esistere implicazioni che il metodo elementare non mette in risalto.&lt;br /&gt;&lt;br /&gt;Un articolo delle attuali conoscenze sulla congettura di Legendre è a:&lt;br /&gt;&lt;a href="http://www.scribd.com/rosario_turco"&gt;www.scribd.com/rosario_turco &lt;/a&gt;(Collections contiene tutti gli articoli dell'autore).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-2807364944326387579?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/2807364944326387579/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/02/le-congetture-e-gli-attacchi-diretti-e.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2807364944326387579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2807364944326387579'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/02/le-congetture-e-gli-attacchi-diretti-e.html' title='Le congetture e gli attacchi diretti e indiretti'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-3626070374122005673</id><published>2011-02-04T11:49:00.000-08:00</published><updated>2011-02-05T07:44:34.256-08:00</updated><title type='text'>Shrimp Factored Problem</title><content type='html'>Spesso per studiare un problema si cerca di semplificarlo con un altro, a volte l'espediente riesce ma in altri casi nasce un altro problema. &lt;br /&gt;&lt;br /&gt;Un problema "carino" da me inventato mentre studiavo il problema di Collatz e gli automi cellulari è quello che &lt;br /&gt;chiamo lo "&lt;i&gt;Shrimp Factored Problem&lt;/i&gt;" ovvero il "&lt;i&gt;problema del Gambero fattorizzat&lt;/i&gt;o".&lt;br /&gt;&lt;br /&gt;Il suo enunciato è il seguente:&lt;br /&gt;Sia dato un intero N qualsiasi e si procede nel seguente modo:&lt;br /&gt;1) Se N è primo si moltiplica randomicamente per un numero presente nell'intervallo [2,N-1] e si passa allo step successivo 2). Se N non è primo si prosegue lo stesso allo step 2).&lt;br /&gt;2) Si fattorizza il numero N ottenuto dallo step 1) e si preleva il minor fattore. Se il fattore è 2 si arresta il procedimento, altrimenti si passa allo step 1) con l'N ottenuto&lt;br /&gt;&lt;br /&gt;I quesiti che si pongono sono almeno due:&lt;br /&gt;a) L'automa si arresta sempre? Ovvero la sequenza di numeri che si ottiene arriva sempre a 2? La sequenza è sempre convergente o può avere cicli?&lt;br /&gt;&lt;br /&gt;b) Come si calcola il numero di step che verranno fatti?&lt;br /&gt;&lt;br /&gt;Eccovi un algoritmo in PARI/GP utile all'analisi:&lt;br /&gt;&lt;br /&gt;Shrimp(N)= local(s="", Np=0); { &lt;br /&gt;&amp;nbsp;if( N == 2, error("You must insert N &amp;gt; 2"));&lt;br /&gt;&amp;nbsp;s=concat(s,N);&lt;br /&gt;&amp;nbsp;s=concat(s,",");&lt;br /&gt;&amp;nbsp;i=1;&lt;br /&gt;&amp;nbsp;while( N != 2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A=factor(N);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(length(A)&amp;gt;=2 &amp;amp; A[1,1] != 2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c=random(N-1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( c &amp;lt; 2, c=2;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N=A[1,1]*c; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( N &amp;gt; Np,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Np = N;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = i; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s=concat(s,N);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s=concat(s,",");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( A[1,1] == 2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N = A[1,1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s=concat(s,N);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;r = pos/i * 1.0;&lt;br /&gt;&amp;nbsp;print("Max = ", Np);&lt;br /&gt;&amp;nbsp;print("r&amp;nbsp;&amp;nbsp; = ", r*100); &lt;br /&gt;&amp;nbsp;print(s);&lt;br /&gt;&amp;nbsp;return; &lt;br /&gt;}&lt;br /&gt;Alcuni risultati:&lt;br /&gt;&lt;br /&gt;? Shrimp(23)&lt;br /&gt;23,207,492,2&lt;br /&gt;&lt;br /&gt;? Shrimp(27)&lt;br /&gt;27,63,168,2&lt;br /&gt;&lt;br /&gt;? Shrimp(31)&lt;br /&gt;31,837,192,2&lt;br /&gt;&lt;br /&gt;? Shrimp(313)&lt;br /&gt;313,35369,2581824,2&lt;br /&gt;&lt;br /&gt;? Shrimp(723421)&lt;br /&gt;723421,248066124847,1068167619936,2&lt;br /&gt;&lt;br /&gt;? Shrimp(723421345678)&lt;br /&gt;723421345678,2&lt;br /&gt;&lt;br /&gt;Apparentemente si ferma subito.&lt;br /&gt;Eccovi un altro esempio col 31, lanciato almeno due-tre volte (cambia il c randomico che faccio stampare prima di mostrare la sequenza numerica):&lt;br /&gt;? Shrimp(31)&lt;br /&gt;19&lt;br /&gt;273&lt;br /&gt;2357&lt;br /&gt;451&lt;br /&gt;1051&lt;br /&gt;1225&lt;br /&gt;1963&lt;br /&gt;4365&lt;br /&gt;11029&lt;br /&gt;1657&lt;br /&gt;211&lt;br /&gt;396&lt;br /&gt;31,589,5187,7071,1353,3153,3675,5889,13095,33087,4971,633,1188,2&lt;br /&gt;? Shrimp(31)&lt;br /&gt;11&lt;br /&gt;128&lt;br /&gt;31,341,1408,2&lt;br /&gt;? Shrimp(31)&lt;br /&gt;27&lt;br /&gt;206&lt;br /&gt;31,837,618,2&lt;br /&gt;&lt;br /&gt;Anche qui apparentemente sembra esistere una "&lt;i&gt;congettura del Massimo dello Shrimp Factored&lt;/i&gt;": il massimo si presenta sempre con una posizione non inferiore al 66,67%. Invece il contro-esempio: &lt;br /&gt;&lt;br /&gt;&amp;nbsp;? Shrimp(511)&lt;br /&gt;493&lt;br /&gt;105&lt;br /&gt;396&lt;br /&gt;Max = 3451&lt;br /&gt;r&amp;nbsp;&amp;nbsp; = 40.00000000000000000000000000&lt;br /&gt;511,3451,735,1188,2&lt;br /&gt;&lt;br /&gt;Si può avere meno del 40%?&lt;br /&gt;&lt;br /&gt;Se avete una dimostrazione ai vari quesiti, fatemi sapere.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-3626070374122005673?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/3626070374122005673/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/02/shrimp-factored-problem.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3626070374122005673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3626070374122005673'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/02/shrimp-factored-problem.html' title='Shrimp Factored Problem'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-2342292071681016954</id><published>2011-01-30T23:15:00.000-08:00</published><updated>2011-01-31T11:02:37.924-08:00</updated><title type='text'>I Simpson e le approssimazioni matematiche</title><content type='html'>Se per un attimo le calcolatrici si usano senza tener presente delle approssimazioni che introducono, si può incappare in qualcosa che sembra il contro-esempio per un Teorema famoso.&lt;br /&gt;&lt;br /&gt;Prendiamo l' "Ultimo Teorema di Fermat" dimostrato da Wiles.&lt;br /&gt;&lt;br /&gt;Nei cartoni de “I Simpson“, gli sceneggiatori nell'episodio “La paura fa novanta VI” ambientano Homer Simpson dal mondo bidimensionale dei cartoni animati ad uno spazio cartesiano virtuale in tre dimensioni dove si possono cogliere di sfuggita delle formule estremamente complesse come per esempio:&lt;br /&gt;&lt;br /&gt;1782^12 + 1841^12 = 1922^12&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZpVWqYMbyjc/TUZhG2AQ39I/AAAAAAAAADI/2CauJacSDHU/s1600/homer-in-3d.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://1.bp.blogspot.com/_ZpVWqYMbyjc/TUZhG2AQ39I/AAAAAAAAADI/2CauJacSDHU/s320/homer-in-3d.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Se questa equazione fosse vera, il Teorema di Fermat verrebbe smentito. Calcolatrice alla mano, l’equazione torna. Com’è possibile? Ok. Contate un attimo le cifre che può rappresentare la calcolatrice. Sicuramente sono dieci.&lt;br /&gt;&lt;br /&gt;Se infatti scegliessimo una calcolatrice con un display di almeno tredici cifre ci renderemmo subito conto che &lt;br /&gt;l’equazione scritta sopra non è corretta.&lt;br /&gt;&lt;br /&gt;Gli sceneggiatori hanno avuto nel cartone l'aiuto di David Cohen, laureato in fisica ad Harvard e con un master in informatica teorica a Berkeley. Cohen&amp;nbsp; per ottenere la relazione ha scritto apposta un software per ricavare le “quasi soluzioni” del teorema di Fermat.&lt;br /&gt;&lt;br /&gt;Gli sceneggiatori hanno ripetuto l'esperimento nell’episodio&amp;nbsp; “L’inventore di Springfield”. Qui Homer, con tanto di occhiali per assumere un apsetto da professore, scrive alla lavagna la seguente equazione:&lt;br /&gt;&lt;br /&gt;3987^12 + 4365^12 = 4472^12&lt;br /&gt;&lt;br /&gt;Qua quanto deve essere il display per accorgersi dell'errore?&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ZpVWqYMbyjc/TUZhgobfHkI/AAAAAAAAADM/gdcURskHaPY/s1600/homer-e-il-teorema-fermat.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ZpVWqYMbyjc/TUZhgobfHkI/AAAAAAAAADM/gdcURskHaPY/s1600/homer-e-il-teorema-fermat.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Bubbole matematiche divertenti, che hanno incuriosito mezzo mondo!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-2342292071681016954?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/2342292071681016954/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/i-simpson-e-le-approssimazioni.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2342292071681016954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2342292071681016954'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/i-simpson-e-le-approssimazioni.html' title='I Simpson e le approssimazioni matematiche'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZpVWqYMbyjc/TUZhG2AQ39I/AAAAAAAAADI/2CauJacSDHU/s72-c/homer-in-3d.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-4964125865162256435</id><published>2011-01-30T00:16:00.000-08:00</published><updated>2011-01-30T00:16:09.414-08:00</updated><title type='text'>L'equazione funzionale della zeta di Riemann</title><content type='html'>Un tema affascinante nel campo complesso è ancor oggi costituito dalla zeta di Riemann e dalle sue due ultime congetture, che resistono come ultimo baluardo della matematica dell'Ottocento.&lt;br /&gt;&lt;br /&gt;Chiunque abbia in qualche modo affrontato lo studio di tale argomento si sarà posto almeno un paio di domande come: “da dove nasce l’equazione funzionale?” oppure “perché i numeri primi sono legati agli zeri della zeta di Riemann?”.&lt;br /&gt;&lt;br /&gt;La difficoltà di svelare gli ultimi misteri della zeta di Riemann, per una sua dimostrazione definitiva con strumenti di matematica analitica, sono spesso legati all'impenetrabilità dell'equazione funzionale, sotto certi aspetti complicata come dimostrazione, e che da una visione a "tutto tondo" non fornendo elementi ulteriori che possano portare a contraddizioni dimostrative.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Nel 1986 Titchmarsh col suo libro, mostrò ben sette tecniche per dimostrare l’equazione funzionale.&lt;br /&gt;&lt;br /&gt;Un breve articolo su una semplice dimostrazione dell'equazione funzionale è al link di www.scribd.com/rosario_turco&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/47783422/Equazione-funzionale-della-zeta-di-Riemann"&gt;http://www.scribd.com/doc/47783422/Equazione-funzionale-della-zeta-di-Riemann&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tale dimostrazione, una delle sette di Tichmarsh, mette in evidenza la “natura frazionaria” insita nella zeta di Riemann, il suo legame con i numeri primi e rappresenta essa stessa una ulteriore strada in cui emerge la stessa zeta.&lt;br /&gt;&lt;br /&gt;Buona lettura&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-4964125865162256435?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/4964125865162256435/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/lequazione-funzionale-della-zeta-di.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4964125865162256435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4964125865162256435'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/lequazione-funzionale-della-zeta-di.html' title='L&apos;equazione funzionale della zeta di Riemann'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8418974951314952265</id><published>2011-01-18T11:40:00.000-08:00</published><updated>2011-02-01T11:54:07.453-08:00</updated><title type='text'>I numeri primi e i numeri Gaussiani primi</title><content type='html'>Una delle cose che, forse, non tutti sanno è che risulta possibile estendere nel piano di Argand, noto anche come piano di Gauss, il concetto di numero primo ed è possibile farlo&amp;nbsp; per diverse altre proprietà dei numeri. Passare da una dimensione a due dimensioni dei numeri complessi è inizialmente un gioco che porta a molte riflessioni e alla nascita di tecniche nuove.&lt;br /&gt;&lt;br /&gt;I numeri nel piano complesso sono definiti numeri di Gauss interi oppure numeri di Gauss primi. Nel mondo dei numeri interi, compreso i negativi, sappiamo trattare facilmente i numeri primi e la fattorizzazione. &lt;br /&gt;&lt;br /&gt;Alcuni elementi semplici del mondo degli interi ad "una dimensione" sono ad esempio:&lt;br /&gt;1) Un numero è primo se divisibile per 1 e sè stesso.&lt;br /&gt;2) i numeri primi appartengono sia alla forma 4n+1 che 4n+3&lt;br /&gt;3) la scomposizione di un numero è univoca&lt;br /&gt;&lt;br /&gt;Se passiamo un attimo al mondo dei numeri complessi, vediamo che si perdono alcune delle tre proprietà di sopra. Prendiamo un numero primo, ad esempio il 2. Il 2 è fattorizzabile, nel piano di Gauss; quindi, non è primo; difatti (1+i)(1-i)=2. Mentre numeri di Gauss primi sono ovviamente 1-i e 1+i. Eppure il 2 nel mondo degli interi era primo. Stessa cosa accade al 5 il 13 e il 17. Chi mi sa trovare altri? E' facile.&lt;br /&gt;&lt;br /&gt;La 2) è vera solo per i numeri di forma 4n+3. I numeri 4n+1 non sono numeri di Gauss primi.&lt;br /&gt;&lt;br /&gt;La divisione per 4 è, quindi, un utile tool di verifica se il numero può essere un numero di Gauss primo. Quelli di forma 4n+1 sono numeri di Gauss interi perchè possono essere splittati, fattorizzati o scomposti in numeri di Gauss primi.&lt;br /&gt;&lt;br /&gt;Non solo, ma i numeri interi (non quelli di Gauss) splittabili hanno la proprietà (dovuta a Pitagora) di essere &lt;br /&gt;esprimibili come somma di quadrati di due interi. Ad esempio 5 = 1 + 4, 13 = 4 + 9, etc.&lt;br /&gt;&lt;br /&gt;I numeri immaginari escono fuori anche dalle soluzioni delle equazioni quadratiche, cubiche etc. avendo ammesso che i^2 = -1, cosa che non piaceva a &lt;i&gt;Kronecker&lt;/i&gt;, il quale affermava: "Dio ha creato i numeri naturali, l'uomo ha fatto il resto". &lt;br /&gt;&lt;br /&gt;D'altra parte i numeri immaginari iniziano possono far capolino anche nell'&lt;i&gt;Ultimo Teorema di Fermat&lt;/i&gt; che sostiene correttamente (dimostrazione di &lt;i&gt;Andrew Wiles&lt;/i&gt;) che il cubo di un intero qualsiasi non è mai somma di due cubi interi. &lt;br /&gt;&lt;br /&gt;Se aggiungiamo i numeri razionali compresi dai numeri complessi è evidente che si perde anche la proprietà 3). Ad esempio prendiamo 6: Nel mondo degli interi -6=-2*3. Nel mondo dei numeri di Gauss possiamo avere che:&lt;br /&gt;-6=(1 + sqrt(-5))(-1+sqrt(-5))&lt;br /&gt;e inoltre è anche&amp;nbsp; &lt;br /&gt;- 6 = -2*3&lt;br /&gt;&lt;br /&gt;Adesso la fattorizzazione non è unica, anzi un numero potrebbe essere splittato in vari modi.&lt;br /&gt;&lt;br /&gt;In seguito a questo &lt;i&gt;Eduard Kummer&lt;/i&gt; introdusse la "teoria dei numeri ideali", per giustificare situazioni come questa e per sostenere settori della Fisica, come la teoria quantistica. Per la verità furono introdotti inizialmente per attaccare l'Ultimo Teorema di Fermat facendo nascere quella che fu detta la teoria dei&lt;br /&gt;numeri algebrica.&lt;br /&gt;&lt;br /&gt;I settori di sopra attualmente sono meno "presidiati" e offrono ancora tante altre opportunità. Penso, ad esempio, che esistono molte proprietà della teoria dei numeri (proprietà dei vari tipi di numeri) da verificare anche tra i numeri Gaussiani e gli ideali ...&lt;br /&gt;&lt;br /&gt;Grossi e ulteriori sostenitori di questi settori della matematica furono &lt;i&gt;Dedekind&lt;/i&gt; (allievo di &lt;i&gt;Gauss&lt;/i&gt;), &lt;i&gt;Dirichlet&lt;/i&gt; e &lt;br /&gt;&lt;i&gt;Riemann&lt;/i&gt; (allievo di Dirichlet).&lt;br /&gt;&lt;br /&gt;Parafrasando &lt;i&gt;Einstein&lt;/i&gt;, mi piace concludere questa semplice panoramica, osservando che spesso "I problemi hanno soluzioni il cui livello di pensiero è totalmente diverso da quello che ha fatto nascere il problema", ma &lt;br /&gt;aggiungo che esistono anche molte soluzioni alla ricerca del problema giusto.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8418974951314952265?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8418974951314952265/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/i-numeri-primi-e-i-numeri-gaussiani.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8418974951314952265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8418974951314952265'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/i-numeri-primi-e-i-numeri-gaussiani.html' title='I numeri primi e i numeri Gaussiani primi'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1870482362435568635</id><published>2011-01-11T13:34:00.000-08:00</published><updated>2011-01-13T05:29:43.214-08:00</updated><title type='text'>Algoritmi di Page Ranking</title><content type='html'>Come funziona un motore di ricerca per cercare le pagine più attinenti? Qual è l'attuale matematica che c'è dietro?&lt;br /&gt;&lt;br /&gt;Il page rank è calcolato in base alla importanza della pagina. Ma come si deve definire l'importanza di una pagina? &lt;br /&gt;&lt;br /&gt;Ci possono essere vari modi:&lt;br /&gt;1) in base al numero di volte che la parola compare&lt;br /&gt;2) in base al numero di link che da essa partono&lt;br /&gt;3) in base al numero di link che ad essa arrivano&lt;br /&gt;4) in base al numero di pagine valutate importanti che puntano alla pagina&lt;br /&gt;&lt;br /&gt;L'idea di Brin e Page di Google è legata proprio al quarto punto di sopra, che offre maggiori risultati. &lt;br /&gt;&lt;br /&gt;Il concetto è semplice: una pagina è importante per le pagine importanti che vi puntano e non tanto per una parola, magari presente una sola volta, e da noi ricercata. Una pagina importante, quindi, da valore ad una pagina a cui punta; per cui l'importanza di una pagina è la somma delle frazioni di importanza che le trasferiscono le pagine che ad esso puntano.&lt;br /&gt;&lt;br /&gt;Supponiamo di numerare le pagine web da 1 a n. Avremo una matrice di connettività H (nxn), dove hij è l'elemento generico della matrice H,&amp;nbsp; di riga i e colonna j . Ora hij=1 se esiste un link dalla pagina i alla pagina j; mentre hij=0 se non esiste il link e se i=j hii=0 perchè una pagina non punta a sè stessa. Supponiamo n=4, ovvero 4 pagine web.&lt;br /&gt;&lt;br /&gt;Una matrice H potrebbe ad esempio avere:&lt;br /&gt;h11=0&amp;nbsp;&amp;nbsp;&amp;nbsp; h12=1&amp;nbsp;&amp;nbsp;&amp;nbsp; h13=1&amp;nbsp;&amp;nbsp;&amp;nbsp; h14=1&lt;br /&gt;h21=1 &amp;nbsp;&amp;nbsp; h22=0&amp;nbsp;&amp;nbsp;&amp;nbsp; h23=0&amp;nbsp;&amp;nbsp;&amp;nbsp; h24=1&lt;br /&gt;h31=0&amp;nbsp;&amp;nbsp;&amp;nbsp; h32=0&amp;nbsp;&amp;nbsp;&amp;nbsp; h33=0&amp;nbsp;&amp;nbsp;&amp;nbsp; h34=1&lt;br /&gt;h41=0&amp;nbsp;&amp;nbsp;&amp;nbsp; h42=1&amp;nbsp;&amp;nbsp;&amp;nbsp; h43=1&amp;nbsp;&amp;nbsp;&amp;nbsp; h44=0&lt;br /&gt;&lt;br /&gt;Se sommiamo gli 1 su una riga otteniamo ri, cioè il numero di link (che è un dato noto). Chiamiamo con xj l'importanza della pagina; per cui è: &lt;br /&gt;&lt;br /&gt;xj = h1j * x1/r1 + h2j * x2/r2 + ... + hnj * xn/rn&amp;nbsp; per j=1..n&amp;nbsp;&amp;nbsp; (1)&lt;br /&gt;&lt;br /&gt;La (1) è un sistema di equazioni lineare in n incognite xi che rappresentano l'importanza delle pagine. Google usa una equazione leggermente differente:&lt;br /&gt;&lt;br /&gt;xj = d(h1j * x1/r1 + h2j * x2/r2 + ... + hnj * xn/rn) * 1/n * (1-d)&amp;nbsp; per j=1..n&amp;nbsp;&amp;nbsp; (2)&lt;br /&gt;&lt;br /&gt;dove d è un parametro nell'intervallo (0,1); di solito si usa d=0,85. Ora un metodo di soluzione come quello di eliminazione di Gauss ha una complessità O(n^3). Se n è molto grande, la soluzione del sistema di equazioni potrebbe richiedere miliardi di anni.&lt;br /&gt;&lt;br /&gt;Come allora avviene, visto che i motori di ricerca lo fanno? Sono stati implementati algoritmi veloci e se ne stanno cercando ancora ulteriori.&lt;br /&gt;&lt;br /&gt;Si usa un metodo iterativo di convergenza:&lt;br /&gt;1) Si fissano inizialmente dei valori qualsiasi agli xi di destra per ottenere xj di sinistra nella (2),&lt;br /&gt;2) Si ripete il passo 1 stavolta col valore xj trovato mettendolo a destra della (2) e, per successive approssimazioni (ripetendo i passi 1 e 2), si converge alla soluzione finale&amp;nbsp; xi(1), xi(2), ..., xi(k) -&amp;gt; xj&lt;br /&gt;&lt;br /&gt;Questa è una tecnica usata anche per lo studio dei campi elettrici, magnetici etc.&lt;br /&gt;&lt;br /&gt;L'errore che si commette e(k) = max|xi(k) - xi| ed è tale che: e(k) &amp;lt;= lambda(k)&amp;nbsp;&amp;nbsp; 0 &amp;lt; lambda &amp;lt; 1&lt;br /&gt;Purtroppo più grande è d nella (2) più lambda è grande e più lenta è la convergenza. La (2) ha anche una sua giustificazione probabilistica; xj rappresenta la probabilità che una pagina venga visitata ritenendo equiprobabili i link che una persona sceglie sulla&amp;nbsp; pagina: d è la probabilità che la persona scelga un link offerto dalla pagina e 1-d se ne sceglie un altro. &lt;br /&gt;&lt;br /&gt;Dietro a tutto questo c' è la teoria delle &lt;i&gt;catene di Markov e delle matrici non negative&lt;/i&gt; che forniscono&lt;br /&gt;l'esistenza e l'unicità della soluzione xj.&lt;br /&gt;&lt;br /&gt;Oggi allo studio ci sono molti altri problemi importantissimi:&lt;br /&gt;- trovare metodi più veloci affinchè le successioni convergano più velocemente&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp; &lt;i&gt;successioni di Krylov&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &lt;i&gt;metodi del gradiente&lt;/i&gt; o delle differenze finite&lt;/li&gt;&lt;li&gt;&amp;nbsp; etc&lt;/li&gt;&lt;/ul&gt;- studiare modelli più complessi dove non c'è l'equiprobabilità&lt;br /&gt;- studiare i valori migliori assumibili da lambda&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1870482362435568635?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1870482362435568635/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/algoritmi-di-page-ranking.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1870482362435568635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1870482362435568635'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/algoritmi-di-page-ranking.html' title='Algoritmi di Page Ranking'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-3509140389099060104</id><published>2011-01-02T00:11:00.000-08:00</published><updated>2011-01-02T00:11:41.062-08:00</updated><title type='text'>Fisica alla ricerca di una Matematica applicata</title><content type='html'>Spesso leggendo o studiando problemi di Fisica moderna, come la teoria delle stringhe o altre nuove, ci si rende conto che la matematica che dovrebbe creare l'impalcatura teorica a sostegno o a demolizione spesso è vecchia o molto complessa.&lt;br /&gt;&lt;br /&gt;In altri termini il nostro progresso teorico e tecnologico è fortemente legato al progresso della matematica o alle ricerche che si fanno in suo ambito. Spesso la teoria matematica è molto complessa e ci si chiede se la Natura, che ama le semplificazioni, possa realmente seguire ragionamenti complessi oppure si è spinti a voler comprendere quali sono i suoi "pregiudizi" che gli permettono di fare percorsi semplificati in una teoria tanto complessa.&lt;br /&gt;&lt;br /&gt;Prendiamo l'esempio della teoria delle stringhe e delle simmetrie.&lt;br /&gt;&lt;br /&gt;La teoria matematica di queste cose, nei suoi mattoncini elementari, sono partite nel 1801 con Jean-Robert Argand, che formalizzò il concetto di piano di Argand e dei numeri complessi a+ib.&lt;br /&gt;&lt;br /&gt;Con essi fu evidente che si ottenevano rotazioni di 90° nel piano o in 2D e che l'operazione moltiplicazione fosse commutativa; difatti se i^2=-1 era:&lt;br /&gt;&lt;br /&gt;1 * i^0 = 1&lt;br /&gt;1 * i&amp;nbsp;&amp;nbsp; = i&lt;br /&gt;i * i&amp;nbsp;&amp;nbsp; = -1&lt;br /&gt;i^2 * i = -i&lt;br /&gt;i^3 * i = 1&lt;br /&gt;&lt;br /&gt;Nel 1843 a William Rowan Hamilton venne l'idea di simmetrie in 3D ponendo:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;i^2 = j^2 = k^2 = i * j * k = -1&lt;br /&gt;&lt;br /&gt;Nacquero i numeri quaternioni a+ib+cj+dk, con cui però si perdeva la proprietà commutativa della moltiplicazione.&lt;br /&gt;&lt;br /&gt;D'altra parte questa fatto in termini di simmetria è giustificato; difatti se si fa una rotazione in un piano di un &lt;br /&gt;pentagono e una riflessione nella terza dimensione il risultato è diverso dal fare prima una riflessione nel piano e poi una rotazione nella terza dimensione.&lt;br /&gt;&lt;br /&gt;Con Arthur Caley nel 1845 si arrivò agli ottetti o ottenioni indicati con 7 lettere e1..e7 e qui si perde anche la &lt;br /&gt;proprietà associativa.&lt;br /&gt;&lt;br /&gt;Sempre nell'Ottocento abbiamo i sedenioni a 16 unità. Con queste teoria si arriva a comprende varie proprietà della Teoria delle stringhe e anche altro; soprattutto si inizia a comprendere un mondo a N-dimensioni.&lt;br /&gt;&lt;br /&gt;La Fisica del 21esimo secolo è ancora basata su Matematica dell'Ottocento e di inizio Novecento.&lt;br /&gt;&lt;br /&gt;Avete mai provato a studiarla, per trarne qualche idea in fisica? Diversi articoli di fisica basati su essi sono presenti sia su Rudi Mathematici che sull Gruppo Eratostene.&lt;br /&gt;&lt;br /&gt;Alla prox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-3509140389099060104?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/3509140389099060104/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/fisica-alla-ricerca-di-una-matematica.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3509140389099060104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3509140389099060104'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2011/01/fisica-alla-ricerca-di-una-matematica.html' title='Fisica alla ricerca di una Matematica applicata'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-6702155889485853856</id><published>2010-12-29T04:47:00.000-08:00</published><updated>2010-12-29T05:28:14.188-08:00</updated><title type='text'>Due buone idee per un "regalo non impegnativo" ad un matematico ...</title><content type='html'>Se siete appassionati di giochi matematici tridimensionali, vi consiglio di leggere questa pagina di Wikipedia: è fatta apposta per voi per introdurvi a tale "dimensione": &lt;a href="http://it.wikipedia.org/wiki/Utente:DBC/Twisty_puzzle"&gt;http://it.wikipedia.org/wiki/Utente:DBC/Twisty_puzzle&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I twisty puzzle sono poliedri magici o puzzle matematici: ne esistono un sacco. Alcuni noti come il cubo di Rubik, il Sudoku-cube e altri meno noti, ma bellissimi. Hanno un fondamento matematico, ma a che servono?&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ZpVWqYMbyjc/TRstfcA43fI/AAAAAAAAAC4/9kwajfMwN0c/s1600/100px-Rubiks_cube_solved.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ZpVWqYMbyjc/TRstfcA43fI/AAAAAAAAAC4/9kwajfMwN0c/s1600/100px-Rubiks_cube_solved.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZpVWqYMbyjc/TRstiaQeLYI/AAAAAAAAAC8/67FmFm8pouY/s1600/100px-Sudoku_Cube.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ZpVWqYMbyjc/TRstiaQeLYI/AAAAAAAAAC8/67FmFm8pouY/s1600/100px-Sudoku_Cube.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ZpVWqYMbyjc/TRst0zhKvJI/AAAAAAAAADA/V0cKz-EvI2I/s1600/100px-Pyraminx_solved.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ZpVWqYMbyjc/TRst0zhKvJI/AAAAAAAAADA/V0cKz-EvI2I/s1600/100px-Pyraminx_solved.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ZpVWqYMbyjc/TRst5Z8N6sI/AAAAAAAAADE/QkJDO9T6bGU/s1600/100px-Skewb_ultimate.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ZpVWqYMbyjc/TRst5Z8N6sI/AAAAAAAAADE/QkJDO9T6bGU/s1600/100px-Skewb_ultimate.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Se ci pensate Platone iniziò con i &lt;i&gt;solidi platonici&lt;/i&gt; per filosofia, poi sono serviti come diletto (esistono i campionati del mondo del cubo di Rubik ad esempio), alcuni sono serviti come modellini per tecniche di imballaggio o come infrastrutture, alcuni sono nati dal mondo dell'arte.&lt;br /&gt;&lt;br /&gt;Oppure provate a leggere un vecchio libro italiano del 1913 di Italo Ghersi, ormai alla quinta edizione "&lt;i&gt;&lt;b&gt;Matematica dilettevole e curiosa". &lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Tratta di tutto:&lt;i&gt; &lt;/i&gt;&lt;i&gt;Problemi bizzarri - Paradossi algebrici e meccanici - Moto perpetuo - Grandi numeri - Curve e loro tracciamento meccanico - Sistemi articolati - Quadratura del circolo - Trisezione dell'angolo - Duplicazione del cubo - Geometria della riga e del compasso - Rompicapo geometrici - Iperspazio - Probabilità - Giochi - Quadrati - Poligoni e poliedri magici.&lt;/i&gt; &lt;br /&gt;&lt;br /&gt;Due buone idee per un regalo ...&lt;br /&gt;&lt;br /&gt;Per chi è interessato anche all'esistenza di &lt;i&gt;ipercubi magici&lt;/i&gt;, ebbene esistono.&lt;br /&gt;&lt;br /&gt;Un ipercubo magico perfetto è            stato costruito da J. Hendricks, nel 1999. E’ di ordine 16 e la            somma costante è 524296.&lt;br /&gt;&lt;br /&gt;Un articolo sulla storia e l'attualità delle figure geometriche magiche per diletto lo troverete a &lt;a href="http://areeweb.polito.it/didattica/polymath/htmlS/Interventi/Articoli/AvventuraCubi/AvventuraCubi.htm"&gt;http://areeweb.polito.it/didattica/polymath/htmlS/Interventi/Articoli/AvventuraCubi/AvventuraCubi.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Un settore nuovo, che rappresenta un nuovo filone di lavoro, è quello di ideare nuovi imballaggi ecologici e a basso costo, con tutto quello che usiamo per vivere ogni giorno, per ridurre alla fonte (la fonte di produzione dei beni) la quantità di rifiuti non riciclabili o comunque non costituenti l'umido. Gli imballaggi ecologici dovrebbero avere i seguenti requisiti minimi:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;essere fatti con materiale riciclabile&lt;/li&gt;&lt;li&gt;non essere costituiti da differenti materiali da differenziare in modo diverso perchè potrebbero causare dubbi o errori sul dove buttarli (indifferenziata, plastica-cartone, ...). Ad esempio lo sapevate che le posate di plastica, i bicchieri e i piatti non vanno nella plastica ma nell'indifferenziata? La carta o il catone sporco di salsa non può essere messo nella carta o cartone? Lo scontrino è carta particolare e non si può riciclare nella carta&lt;/li&gt;&lt;li&gt;essere di basso costo &lt;/li&gt;&lt;li&gt;essere tali da poterli ridurre facilmente di volume dopo l'acquisto&lt;/li&gt;&lt;li&gt;essere igienici e non nocivi&lt;/li&gt;&lt;li&gt;essere tali da rendere minimo lo spazio di intramezzo non utilizzato nel caso di accumulo in un deposito&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;In pratica vanno riprogettati su tutti i prodotti oggi noti ... &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-6702155889485853856?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/6702155889485853856/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/12/due-buone-idee-per-un-regalo-non.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6702155889485853856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6702155889485853856'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/12/due-buone-idee-per-un-regalo-non.html' title='Due buone idee per un &quot;regalo non impegnativo&quot; ad un matematico ...'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZpVWqYMbyjc/TRstfcA43fI/AAAAAAAAAC4/9kwajfMwN0c/s72-c/100px-Rubiks_cube_solved.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1760320754828340187</id><published>2010-12-27T05:46:00.000-08:00</published><updated>2010-12-27T05:56:44.292-08:00</updated><title type='text'>Natale e la stella cometa</title><content type='html'>L'atmosfera natalizia ad un matematico fa venire in mente almeno due cose:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;i comet diagram, come quelli della congettura di Goldbach, di Riemann etc&lt;/li&gt;&lt;li&gt;le stelle magiche&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;Una &lt;strong&gt;stella magica&lt;/strong&gt; è un poligono stellato a n punte, con n maggiore di 5, avente come simbolo di Shläfli {n/2} con gli n vertici e le n intersezioni degli n lati munite di 2n interi tale che le somme dei 4 numeri su ciascun lato coincidano. Il valore di queste somme si dice costante magica o somma magica della stella.&lt;/div&gt;&lt;br /&gt;Si dice inoltre stella magica normale una tale configurazione che sia munita degli interi consecutivi da&lt;br /&gt;1 a 2n. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;La somma magica delle stelle magiche ad n punte è Mn = 1/n[2*2n(2n+1)/2]=4n+2. Quindi sono legate ai numeri triangolari 2n(2n+1)/2.&lt;br /&gt;&lt;br /&gt;Si dimostra che non esistono poligoni stellati con meno di 5 punte. Le stelle magiche più ridotte hanno 6 punte.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;In figura alcuni esempi: esagramma magico (somma 24), ettagramma magico (somma 30), ottogramma magico (somma 34) etc.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;a href="http://3.bp.blogspot.com/_ZpVWqYMbyjc/TRiXchbw2NI/AAAAAAAAACs/enb9OLpF8hY/s1600/Magic6star-sum26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" n4="true" src="http://3.bp.blogspot.com/_ZpVWqYMbyjc/TRiXchbw2NI/AAAAAAAAACs/enb9OLpF8hY/s1600/Magic6star-sum26.png" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_ZpVWqYMbyjc/TRiXe9WDa6I/AAAAAAAAACw/hG-DOnkEYdc/s1600/Magic7star-sum30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" n4="true" src="http://2.bp.blogspot.com/_ZpVWqYMbyjc/TRiXe9WDa6I/AAAAAAAAACw/hG-DOnkEYdc/s1600/Magic7star-sum30.png" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://4.bp.blogspot.com/_ZpVWqYMbyjc/TRiXi9ULjUI/AAAAAAAAAC0/Kh8De5R_Zxw/s1600/Magic8star-sum34.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" n4="true" src="http://4.bp.blogspot.com/_ZpVWqYMbyjc/TRiXi9ULjUI/AAAAAAAAAC0/Kh8De5R_Zxw/s1600/Magic8star-sum34.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Stelle mod n&lt;/strong&gt;&lt;/div&gt;Un'altra categoria interessante sono le stelle mod n. Ad esempio una stella a 6 punte con la distribuzione circolare dei numeri&amp;nbsp;interi da 1 mod 6 a n mod 6 individua i numeri primi incolonnati però nelle punte della stella secondo il resto della divisione x/i mod 6.&amp;nbsp; In pratica si ottiene la spirale di Ulam, se si usa mod 6.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;Un articolo sulla spirale di Ulam a tal proposito è su &lt;a href="http://eprints.bice.rm.cnr.it/513/1/ULAMSEGR.pdf"&gt;http://eprints.bice.rm.cnr.it/513/1/ULAMSEGR.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;Tutti gli articoli dell'autore si trovano su:&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/articoli.htm"&gt;http://www.gruppoeratostene.com/articoli/articoli.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.rudimathematici.com/blocknotes.htm"&gt;http://www.rudimathematici.com/blocknotes.htm&lt;/a&gt;&amp;nbsp; &lt;br /&gt;&lt;a href="http://rudimatematici-lescienze.blogautore.espresso.repubblica.it/2010/12/19/colpo-grosso-alla-regence/"&gt;http://rudimatematici-lescienze.blogautore.espresso.repubblica.it/2010/12/19/colpo-grosso-alla-regence/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/rosario_turco"&gt;http://www.scribd.com/rosario_turco&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1760320754828340187?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1760320754828340187/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/12/natale-e-la-stella-cometa.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1760320754828340187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1760320754828340187'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/12/natale-e-la-stella-cometa.html' title='Natale e la stella cometa'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZpVWqYMbyjc/TRiXchbw2NI/AAAAAAAAACs/enb9OLpF8hY/s72-c/Magic6star-sum26.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-236080965485751691</id><published>2010-12-18T09:53:00.000-08:00</published><updated>2010-12-18T23:46:41.900-08:00</updated><title type='text'>Metodi di generazione dei numeri di Smith</title><content type='html'>S è un &lt;i&gt;numero di Smith &lt;/i&gt;se considerando con T la somma dei digit di S, con F la somma della lista dei fattori di S, allora F è uguale a T.&lt;br /&gt;&lt;br /&gt;Esempio 729&lt;br /&gt;T=18&lt;br /&gt;S=3^6=3*3*3*3*3*3&lt;br /&gt;F=3+3+3+3+3+3=18&lt;br /&gt;F=T&lt;br /&gt;S è un numero di Smith.&lt;br /&gt;&lt;br /&gt;Nella base 10, i primi numeri di Smith sono&lt;br /&gt;&lt;br /&gt;4, 22, 27, 58, 85,&amp;nbsp;&amp;nbsp; 94, 121, 166, 202, 265, 274, 319, 346, 355, 378,&amp;nbsp;&amp;nbsp; 382, 391, 438, 454, 483, 517, 526, 535, 562, 576, 588, 627, 634, 636, 645, ... (Sequenza A006753 dell'OEIS)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Metodi per generare i numeri di Smith&lt;/b&gt;&lt;br /&gt;&lt;u&gt;1.mo metodo&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Se p è un primo Repunit allora posso generare numero di Smith con la moltiplicazione S=k*p dove k può assumere ad esempio uno dei seguenti valori: 1.540, 1.720, 2.170, 2.440, 3.304, 5.590, 6.040, &lt;br /&gt;7.930, 8.344, 8.470, 8.920, 23.590, 24.490, 25.228, 29.080, 31.528, 31.780, 33.544, 34.390, 35.380.&lt;br /&gt;&lt;br /&gt;Alcuni esempi:&lt;br /&gt;&lt;br /&gt;R(2)=11&lt;br /&gt;S=3304*R(2)=36344&lt;br /&gt;T=3+6+3+4+4=2+0=2&lt;br /&gt;L=2^3*7*11*59&lt;br /&gt;F=2+2+2+7+11+59=24+59=8+3=1+1=2&lt;br /&gt;--&amp;gt;Si Notare che il repunit primo appare anche nella scomposizione&lt;br /&gt;&lt;br /&gt;R(3)=111&lt;br /&gt;S=3304*R(3)=366744&lt;br /&gt;T=3+6+6+7+4+4=30=3&lt;br /&gt;S=2^3*3*7*37*59&lt;br /&gt;F=2+2+2+3+7+37+59=16+37+59=112=1+1+2=4&lt;br /&gt;--&amp;gt;No&lt;br /&gt;&lt;br /&gt;R(19)&lt;br /&gt;S=3671111111111111110744&lt;br /&gt;T=3+6+7+15+15=16+15+15=46=4+6=1&lt;br /&gt;S=2^3*7*59*1111111111111111111&lt;br /&gt;F=2+2+2+7+59+19=13+59+19=91=9+1=1&lt;br /&gt;--&amp;gt;Si Notare che il repunit primo appare anche nella scomposizione&lt;br /&gt;&lt;br /&gt;I numeri di Smith di questa formas sono, quindi, legati ai numeri Repunit primi.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2.do metodo&lt;/u&gt;&lt;br /&gt;Nel 1984, Pat Costello generò numeri di Smith con la formula P*Q*10^M dove P è un piccolo primo e Q è un numero primo di Mersenne noto.&amp;nbsp;&amp;nbsp;Come si deve scegliere M nella formula P*Q*10^M?&lt;br /&gt;&lt;br /&gt;Un metodo è il seguente:&lt;br /&gt;&amp;nbsp;a) Si sceglie il numero primo di Mersenne e si calcola la somma dei suoi digit&lt;br /&gt;&amp;nbsp;b) Si un numero primo piccolo P e si fanno i seguenti passi:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b1) si calcola ps = somma dei digit di Q + la somma dei digit di P;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b2) si calcola il prodotto P*Q;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b3) si calcola ds = somama dei digit di P*Q;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; se ds&lt;ps, a="" b)="" e="" nuovo="" p;="" scegli="" si="" torna="" un=""&gt;&amp;lt;ps, si torna a b) e si sceglie un nuovo P;&lt;/ps,&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; se ds=ps, allora P*Q è un numero di Smith;&lt;br /&gt;&lt;ps, a="" b)="" e="" nuovo="" p;="" scegli="" si="" torna="" un=""&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; se ds&amp;gt;ps, allora si calcola&amp;nbsp; (ds-ps) mod 7;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; se (ds-ps) mod 7 = 0 allora M = (ds-ps)/7 e P*Q*10^M è un numero di Smith&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; altrimenti si torna a b) e si sceglie un nuovo P.&lt;br /&gt;&amp;nbsp;Esempio:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scegliamo Q = 2^17-1 = 131071 scegliamo&amp;nbsp; P = 5011.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ps = 20.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P*Q = 656796781.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds = 55.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds-ps = 35 divisibile per 7. M=35/7=5.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P*Q*10^5 = 65679678100000 è un numero di Smith secondo la definizione iniziale&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Costello individuò 65 numeri di Smith in questo modo, incluso uno da record:&lt;br /&gt;191*(2^216091-1)*10^266 con 65319 digit.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;3.zo metodo&lt;/u&gt;&amp;nbsp;&lt;/ps,&gt;&lt;br /&gt;&lt;ps, a="" b)="" e="" nuovo="" p;="" scegli="" si="" torna="" un=""&gt;Nel 1987, Wayne McDaniel generalizzò il concetto di numeri di Smith e introdusse i k-Smith numbers e provò che sono infiniti. Con k=1 ci si riduce ai numeri di Smith, allora anche i numeri di Smith sono infiniti.&lt;br /&gt;&lt;br /&gt;McDaniel&amp;nbsp; generò i numeri di Smith della forma t*9Rn*10^M dove t è nell'insieme {2, 3, 4, 5, 7, 8, 15}, con Rn repunit primo.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;4.to metodo&lt;/u&gt;&lt;br /&gt;Dovuto a Yates.Di forma 9Rn*QS*10^M&amp;nbsp; con Rn repunit primo e Q un primo palindromo di forma &lt;br /&gt;10^2K +A*10K + 1.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Si suppone che esistono molte altre forme generatrici di numeri di Smith.&amp;nbsp;&lt;/ps,&gt;&lt;br /&gt;&lt;br /&gt;Tuttavia è bene sottolineare che alcuni numeri possono avere più proprietà, ad esmpio è possibile trovare un numero di Fibonacci Smith e così via. Esistono i numeri di Smith palindromi, fratelli etc (&lt;a href="http://it.wikipedia.org/wiki/Numero_di_Smith"&gt;http://it.wikipedia.org/wiki/Numero_di_Smith&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;L'utilità dei numeri di Smith? Si può cercare di appoggiarsi ad essi per semplificare la primalità di un altro tipo di numero. Ad esempio abbiamo visto che i numeri di Smith sono composti, ma legati ai Mersenne primi o a Repunit primi. Questo vuol dire che se si crea un algoritmo con cui generare un numero di Smith di una certa forma, allora si potrebbe risalire ad un Mersenne primo o a un Repunit primo.&lt;br /&gt;&lt;br /&gt;P.S: Se usate la forma S=K*p vi renderete conto che avrete bisogno della fattorizzazione di S, che è lenta; oppure di sapere dato un p se esso è un fattore primo di S senza fattorizzare S (problema oggi non risolto). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-236080965485751691?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/236080965485751691/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/12/metodi-di-generazione-dei-numeri-di.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/236080965485751691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/236080965485751691'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/12/metodi-di-generazione-dei-numeri-di.html' title='Metodi di generazione dei numeri di Smith'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1758644210300510322</id><published>2010-12-11T00:58:00.000-08:00</published><updated>2010-12-13T23:13:14.158-08:00</updated><title type='text'>Articoli informatici</title><content type='html'>Oltre che interessarmi per hobby di Matematica e Fisica, il mio lavoro professionale è svolto nell'ambito progettazione di sistemi software (HW, prodotti, Architetture, progettazione SW) e spesso mi diletto anche a scrivere articoli di progettazione UML, Object Oriented, Framework, processi produttivi software (RUP, XP) e i principi di base: riusabilità, refactoring, etc.&lt;br /&gt;&lt;br /&gt;Per chi fosse interessato a seguire tali articoli sono disponibili su SCRIBD&lt;br /&gt;(&lt;a href="http://www.scribd.com/rosario_turco"&gt;http://www.scribd.com/rosario_turco&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Ve ne segnalo solo alcuni:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Principi di base&lt;/b&gt; &lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083638/oobase"&gt;http://www.scribd.com/doc/45083638/oobase&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083753/Principi"&gt;http://www.scribd.com/doc/45083753/Principi &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083533/Re-Factoring"&gt;http://www.scribd.com/doc/45083533/Re-Factoring&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083503/riuso"&gt;http://www.scribd.com/doc/45083503/riuso&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083402/Usa-Bi-Lit-A"&gt;http://www.scribd.com/doc/45083402/Usa-Bi-Lit-A&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Progettazione UML &lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083368/colori"&gt;http://www.scribd.com/doc/45083368/colori&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083901/Business"&gt;http://www.scribd.com/doc/45083901/Business&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083612/esempiuml"&gt;http://www.scribd.com/doc/45083612/esempiuml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Design Pattern&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083152/OO-Design-Pattern-e-Book"&gt;http://www.scribd.com/doc/45083152/OO-Design-Pattern-e-Book&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Processi produttivi&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083287/Extreme"&gt;http://www.scribd.com/doc/45083287/Extreme&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083473/Rup"&gt;http://www.scribd.com/doc/45083473/Rup&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Framework&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/45083575/Framework"&gt;http://www.scribd.com/doc/45083575/Framework&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1758644210300510322?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1758644210300510322/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/12/articoli-informatici.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1758644210300510322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1758644210300510322'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/12/articoli-informatici.html' title='Articoli informatici'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-177185050380179810</id><published>2010-11-20T04:43:00.000-08:00</published><updated>2010-12-11T01:04:32.813-08:00</updated><title type='text'>Tools per Windows - Teoria dei Numeri</title><content type='html'>Ok, ma chi non vuole fare il salto e provare la maggior potenza delle altre piattaforme e vuole mantenere i piedi per terra, su quella terra che meglio conosce? Ok, anche per Windows esistono gruppi o persone di tutto il mondo che si occupano di primalità, fattorizzazione, con tutta la teoria migliore possibile: curve ellittiche, Sieve etc.&lt;br /&gt;&lt;br /&gt;Alcuni link, veramenti importanti sono:&lt;br /&gt;- &lt;a href="http://www.ellipsa.eu/public/primo/primo.html"&gt;http://www.ellipsa.eu/public/primo/primo.html&lt;/a&gt;&amp;nbsp; - programma PRIMO&lt;br /&gt;- &lt;a href="http://gilchrist.ca/jeff/factoring/index.html"&gt;http://gilchrist.ca/jeff/factoring/index.html&lt;/a&gt;- &lt;a href="http://math.crg4.com/software.html%20"&gt;http://math.crg4.com/software.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Qua basta scaricarsi le parti Windows, anche se esistono anche le versioni Linux/Unix.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Altri consigli sono al mio blog: &lt;br /&gt;- &lt;a href="http://mathbuildingblock.blogspot.com/2010/01/numeri-primi-tools-e-linguaggi.html"&gt;http://mathbuildingblock.blogspot.com/2010/01/numeri-primi-tools-e-linguaggi.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-177185050380179810?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/177185050380179810/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/11/tools-per-windows-teoria-dei-numeri.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/177185050380179810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/177185050380179810'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/11/tools-per-windows-teoria-dei-numeri.html' title='Tools per Windows - Teoria dei Numeri'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-7091226562763662937</id><published>2010-11-20T03:27:00.000-08:00</published><updated>2010-11-20T03:34:45.713-08:00</updated><title type='text'>Piattaforma Linux per la teoria dei numeri</title><content type='html'>Finora vi ho indicato molti strumenti per la Teoria dei numeri, ma un vero matematico che è anche un informatico/sperimentatore non può essere soddisfatto se non effettua il "salto" verso una piattaforma matematica completa, con tutti gli strumenti desiderati: C/C++/Java, Perl, GMP, PARI/GP, GP, ECPP, Maxima, Octave, Pari/GP, XAO e altro.&lt;br /&gt;&lt;br /&gt;Occorre passare ad una "distro Linux" orientata alla Matematica (distro=distribuzione). Lo so si ha paura di partizionare Windows, fare il dual boot etc. Non occorre! Se sapete installare qualche programmino e volete anche un minimo osare, installiamo su Windows una macchina virtuale: VirtualBox &lt;a href="http://www.virtualbox.org/wiki/Downloads"&gt;http://www.virtualbox.org/wiki/Downloads&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Scaricate la versione ultima per Windows x86/amd e installatela. Il sito è corredato di manuale ed esempi.&lt;br /&gt;La VirtualBox vi consente di rimanere Windows e Linux indipendenti come ambienti. Qualsiasi cosa fate anche un danno, lo fate in un ambiente virtuale e non sul PC con Windows.&lt;br /&gt;&lt;br /&gt;Gli sviluppatori conoscono VirtualBox perchè amano provare i propri programmi su più sistemi operativi pur possedendo un solo PC.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Poi vi consiglio come distro Linux matematica la "Knoppix Math" da scaricare da uno dei seguenti link:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://epidemiology.md.tsukuba.ac.jp/%7Emokada/R/knoppix/"&gt;http://epidemiology.md.tsukuba.ac.jp/~mokada/R/knoppix/&lt;/a&gt;&lt;br /&gt;- &lt;a href="ftp://ftp.math.kobe-u.ac.jp/pub2/knoppix-math-cd/"&gt;ftp://ftp.math.kobe-u.ac.jp/pub2/knoppix-math-cd/&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://epidemiology.md.tsukuba.ac.jp/%7Emokada/R/"&gt;http://epidemiology.md.tsukuba.ac.jp/~mokada/R/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Scegliere l'ultima ISO dell'anno disponibile in versione inglese en (ufficialmente la distro di matematica è &lt;br /&gt;giapponese). Ad esempio del 2010 usare: knoppix_v6.2.1-math-dvd-icms2010-20100730-en.iso&lt;br /&gt;&lt;br /&gt;Sotto VirtualBox la ISO la si può caricare come CD-ROM virtuale (sempre configurando la VirtualBox) oppure la si può installare e poi configurare la VirtualBox per fare il boot da disco virtuale.&lt;br /&gt;&lt;br /&gt;Per problemi e suggerimenti, conoscete la mia e-mail e potete contattarmi.&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-7091226562763662937?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/7091226562763662937/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/11/piattaforma-linux-per-la-teoria-dei.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7091226562763662937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7091226562763662937'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/11/piattaforma-linux-per-la-teoria-dei.html' title='Piattaforma Linux per la teoria dei numeri'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8812291038356088642</id><published>2010-11-18T00:21:00.000-08:00</published><updated>2010-11-18T00:21:46.980-08:00</updated><title type='text'>Calcoli mentali rapidi su grandi numeri</title><content type='html'>Nella matematica si verificano spesso problematiche che confluiscono nel Teorema di Godel: una branchia matematica non è auto-dimostrante. Ad esempio proprietà dell'aritmetica non si riescono a dimostrare con l'aritmetica stessa e si deve ricorrere all'algebra, e questo è vero per ogni branchia e quando non esiste un settore o non è stato esplorato sufficientemente una congettura rimane un Teorema mancato, in attesa di nuovi strumenti matematici esistenti o da creare (magari anche il settore matematico è da creare). Esistono molte congetture, difatti, non ancora rigorosamente dimostrate, ma sono presenti moltissime evidenze sulla loro verità.&lt;br /&gt;&lt;br /&gt;L'algebra ha un fascino enorme, perchè permette di manipolare espressioni e termini, equazioni, facendo apparire e sparire elementi fino ad arrivare ad una dimostrazione di verità o falsità.&lt;br /&gt;&lt;br /&gt;Ad esempio il problema classico di Sophie Saint Germain di verificare se a^4 + 4 è composto, va affrontato con qualche passaggio del tipo:&lt;br /&gt;&lt;br /&gt;a^4+4=a^4+4a^2+4-4a^2=(a^2+2)^2-(2a)^2=(a^2-2-2a)(a^2-2+2a)&lt;br /&gt;&lt;br /&gt;In pratica appare il prodotto notevole, quindi a^4 + 4 è costituito sicuramente da due fattori, per cui è composto.&lt;br /&gt;&lt;br /&gt;L'algebra ed il prodotto notevole sono spesso dietro a a calcoli mentali con numeri enormi, che non hanno nulla di prodigioso in chi lo esegue. Il fatto è che la maggioranza delle persone, anche il sottoscritto, tende a fare i calcoli con la moltiplicazione classica e gli occorre almeno carta e penna per disporre di una memoria tampone.&lt;br /&gt;&lt;br /&gt;A tutti è noto però che esistono metodi mentali per approssimare rapidamente il calcolo e poi correggerlo. Un caso&amp;nbsp; semplice a cui tutti ricorrono è nelle somme o nelle differenze; ad esempio con 112+231 è più facile fare 112+200=312 e poi correggere di 31 a 343.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tecniche per le potenze&lt;/b&gt;&lt;br /&gt;Con le potenze esistono diverse teniche per rendere rapido un calcolo con l'aiuto dell'algebra. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Tecnica 1 - adattare il calcolo ad un prodotto notevole del tipo&lt;/u&gt;:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; a^2 = a^2 - b^2 + b^2 = (a+b)(a-b)+b^2 &lt;br /&gt;&lt;br /&gt;Sopra (a+b)(a-b) è il prodotto notevole e b è il termine di aggiusto in modo che (a-b) oppure (a+b) sia un numero tondo e facile per fare i calcoli.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Tecnica 2 - regola del 5&lt;/u&gt;&lt;br /&gt;Una seconda tecnica sulle potenze è osservare come termina il numero se per 5, allora si applica la regola del 5: Il quadrato di un numero che termina per 5 a5^2 = a*(a+1) concatenato con 25. &lt;br /&gt;&lt;br /&gt;Vediamo alcuni esempi per le potenze:&lt;br /&gt;&lt;br /&gt;1) 27^2&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Qui è più facile aggiustare a 30 &lt;br /&gt;&lt;br /&gt;(27+3)(27-3)+3^2 = 30*24+9=3*10*24+9=3*240+9=3*200+40*3+9=600+120+9=729&lt;br /&gt;&lt;br /&gt;2) 63^2&lt;br /&gt;&lt;br /&gt;(63-3)(63+3)+3^2=6*10*66+9=6*660+9=3969&lt;br /&gt;&lt;br /&gt;3) 35^2 = 1225&lt;br /&gt;&lt;br /&gt;ricordando che 3*4=12 concatenando 25&lt;br /&gt;&lt;br /&gt;4) 65^2 = 4225&lt;br /&gt;&lt;br /&gt;5) 75^2 = 5625&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Metodo generale per la moltiplicazione&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Regola per a*b con a&amp;gt;b &lt;/u&gt;&lt;br /&gt;Mettere il tutto nella forma (a+c)(b-c)+c*((a+c)-b)&amp;nbsp;&amp;nbsp; con a&amp;gt;b facendo in modo che a+c diventi un numero semplice multiplo di 10 ad esempio o comunque facile da calcolare.&lt;br /&gt;&lt;br /&gt;Esempio&lt;br /&gt;997*986&lt;br /&gt;&lt;br /&gt;997 è vicino a 1000 per cui pensiamo ad un (a+c) con c=3, mentre 986 è lontano di 14=(b-c) da 1000; per cui si può scrivere:&lt;br /&gt;&lt;br /&gt;(997+3)*(986-3)+3*14=1000*983+3*14=983000+42=983042&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Scorciatoie basate sul numero di cifre&lt;/b&gt;&lt;br /&gt;&lt;u&gt;Prima tecnica:&lt;/u&gt; &lt;br /&gt;Se abbiamo due numeri di tre cifre abc*abd con cifra delle centinaia uguale e somma delle unità pari a 10 allora separiamo i calcoli ab*a(b+1)&amp;nbsp; e c*d. Il risultato si ottiene concatenando le cifre ottenute.&lt;br /&gt;&lt;br /&gt;Esempio&lt;br /&gt;783*787 &lt;br /&gt;si moltiplica 78*79 col metodo precedente e 3*7=21.&lt;br /&gt;&lt;br /&gt;Quindi 78*79=(79+21)(78-21)+21*22=100*57+22+440=5722+440=6162&lt;br /&gt;&lt;br /&gt;per cui concatenando si ottiene che:&lt;br /&gt;&lt;br /&gt;783*787=616221&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Seconda tecnica&lt;/u&gt;: &lt;br /&gt;usare un prodotto notevole osservando la distanza tra i due numeri e usando il numero medio &lt;br /&gt;&lt;br /&gt;Esempio&lt;br /&gt;783*787 = (785+2)(785-2)=785^2-4&lt;br /&gt;&lt;br /&gt;Possiamo ora usare i metodi delle potenze precedenti (regola del 5), il riusultato esce da&amp;nbsp; &lt;br /&gt;&lt;br /&gt;78*79 concatenato a 25 quindi 616225, per cui &lt;br /&gt;&lt;br /&gt;783*787 = (785+2)(785-2)=785^2-4=616221&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tecniche di predizione delle ultime cifre&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Regole delle cifre 1,5,6&lt;/u&gt;&lt;br /&gt;Sicuramente tutti abbiamo notato che se moltiplichiamo due numeri che hanno entrambi il 5 finale, il risultato avrà il 5 finale.&lt;br /&gt;Questo accade anche per 1 e 6 (ovviamente dimostrabile).&lt;br /&gt;&lt;br /&gt;Questo per dire che se vi chiedono l'ultima cifra di 3456^323342 è sicuramente 6, come per 345621^342 è 1 e per 815^723 è 5.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Regola del 25 e 76&lt;/u&gt;&lt;br /&gt;Il prodotto di due numeri che terminano per 76 conterrà 76 alla fine e così per il 25.&lt;br /&gt;&lt;br /&gt;Esempio &lt;br /&gt;8176^2 = 66846976&lt;br /&gt;&lt;br /&gt;3176 * 2576 = 8181376&lt;br /&gt;&lt;br /&gt;Ma ne esistono anche tante altre regole: per la divisibilità, per dire le cifre decimali di una divisione etc.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8812291038356088642?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8812291038356088642/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/11/calcoli-mentali-rapidi-su-grandi-numeri.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8812291038356088642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8812291038356088642'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/11/calcoli-mentali-rapidi-su-grandi-numeri.html' title='Calcoli mentali rapidi su grandi numeri'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-7171448949418768430</id><published>2010-11-15T13:50:00.000-08:00</published><updated>2010-11-15T23:04:46.870-08:00</updated><title type='text'>La Matematica ed i giochi</title><content type='html'>La matematica pone sfide a qualsiasi livello, scientifico e professionale, ma anche ludico e dilettevole. Spesso soluzioni di matematica dilettevole si trasformano, negli anni, in teoria apri-pista per i problemi professionali. Un esempio è stato il problema dei ponti di Konosberg di Eulero da cui poi è nata la Teoria dei grafi, la Topologia etc.&lt;br /&gt;&lt;br /&gt;Dal diletto sono nati problemi, teoremi e teorie e così sarà anche in futuro. Nomi di esperti di matematica dilettevole potrebbero essere: &lt;i&gt;Varahamihira, Narayana, Bachet de Meziriac, Fermat, La Hire, Eulero, Beniamino Franklin, Edouard Lucas, Jean Pierre Alem, Mariano Mataix,Googol, Yakov Perelman, Henrey Dudney, Martin Gardner&lt;/i&gt;. Ma sicuramente ne abbiamo tralasciati tanti altri altrettanto noti ed importanti: impossibile nominarli tutti.&lt;br /&gt;&lt;br /&gt;Esaminiamo nel seguito un argomento di matematica che in Europa ha avuto radici nel Cinquecento: i quadrati magici. Hanno un fascino esoterico (citati anche nei libri di Dan Brown), un fascino particolare dovuto alla simmetria esistente in essi, fino ad esplodere nel Sudoku o nel tridimensionale gioco del cubo di Rubik. Chissà se qualcuno mostrerà qualcosa di analogo con un 'ipercubo magico'. In realtà la teoria dei quadrati magici risale al VI secolo con gli Indiani poi tramandata agli Arabi nel IX secolo.&lt;br /&gt;&lt;br /&gt;I quadrati magici sono caratterizzati da innumerovoli proprietà a seconda del tipo di quadrato si considera; comunque le proprietà più semplici sono: &lt;br /&gt;a) la somma delle diagonali o delle linee è sempre N, che è detto 'numero magico' del quadrato &lt;br /&gt;b) Se il quadrato è nxn, N è la n-esima parte della somma di tutti i numeri del quadrato.&lt;br /&gt;c) I numeri non sono ripetuti nel quadrato&lt;br /&gt;&lt;br /&gt;Vediamo qualche problema.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Problema 1&lt;/b&gt;: Trovare N e K nel quadrato magico 3x3 ponendo k al centro e sapendo che esso è costituito&lt;br /&gt;solo di numeri dal 10 al 18.&lt;br /&gt;&lt;br /&gt;Supponiamo di avere un quadrato 3x3 come segue:&lt;br /&gt;&lt;br /&gt;|a|b |c&lt;br /&gt;|&amp;nbsp; |K|&lt;br /&gt;|d|e|f&lt;br /&gt;&lt;br /&gt;Dall'algebra e dal numero N risulta allora che la somma delle diagonali è N e la somma di una traversa dall'alto in basso è N:&lt;br /&gt;&lt;br /&gt;a+k+f=N&lt;br /&gt;b+k+e=N&lt;br /&gt;c+k+d=N&lt;br /&gt;&lt;br /&gt;Se sommiamo le tre equazioni si ottiene che: (a+b+c)+3k+(d+e+f)=3N; però in un quadrato magico anche a+b+c=N e d+e+f=N per cui: k=N/3 o 3k=N. N è 1/3 della somma degli elementi da 10 a 18:&lt;br /&gt;&lt;br /&gt;N = 1/3 (10+11+12+13+14+15+16+17+18)=42 e k=14.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Problema 2 - Quadrato dei primi&lt;/b&gt;: Completare il quadrato 3x3 seguente:&lt;br /&gt;&lt;br /&gt;|67|&amp;nbsp;&amp;nbsp;&amp;nbsp; |43&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |73|&lt;br /&gt;&lt;br /&gt;Dal problema 1 abbiamo imparato che conviene mettere un k al centro e cercare di completare una riga o una diagonale:&lt;br /&gt;&lt;br /&gt;|67|b&amp;nbsp; |43&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |k&amp;nbsp; |&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |73|&lt;br /&gt;&lt;br /&gt;Qui deve essere: 67+b+43=b+k+73=3K&amp;nbsp;&amp;nbsp; per cui b=1 e k=37 N=3k=111&lt;br /&gt;&lt;br /&gt;Il quadrato magico per le ovvie differenze deve essere&lt;br /&gt;&lt;br /&gt;|67|1&amp;nbsp; |43&lt;br /&gt;|13|37|61&lt;br /&gt;|31|73|7&lt;br /&gt;&lt;br /&gt;Questo quadrato è dovuto a &lt;i&gt;Dudney&lt;/i&gt; ed è detto "&lt;i&gt;Quadrato dei primi&lt;/i&gt;" poichè è costituito da soli numeri primi.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Problema 3: Sudoku o Novenario&lt;/b&gt;. Trovare il numero magico N del Sudoku 3x3.&lt;br /&gt;&lt;br /&gt;In un quadrato 3x3 del Sudoku la somma di tutti i numeri è quella da 1 a 9, per cui N=1/3(1+2+3+4+5+6+7+8+9)=45/3=15. Il k=N/3=5 può essere messa al centro del Sudoku.&lt;br /&gt;&lt;br /&gt;Se poniamo in un angolo il 9 otteniamo:&lt;br /&gt;&lt;br /&gt;|9 |&amp;nbsp;&amp;nbsp; |&lt;br /&gt;|&amp;nbsp;&amp;nbsp; |5 |&lt;br /&gt;|&amp;nbsp;&amp;nbsp; | &amp;nbsp; |1&lt;br /&gt;&lt;br /&gt;Ma così possiamo avere una sola soluzione per ottenere N=15 in riga e colonna: 4,2; il che non va bene perchè sarebbe una ripetizione. Di conseguenza il 9 non può stare nei vertici.&amp;nbsp; In tal caso abbiamo due 'soluzioni principali' e tutte le altre si ottengono ruotando il quadrato:&lt;br /&gt;&lt;br /&gt;|4 |9 |2&lt;br /&gt;|3 |5 |7&lt;br /&gt;|8 |1 |6&lt;br /&gt;&lt;br /&gt;|2 |9 |4&lt;br /&gt;|7 |5 |3&lt;br /&gt;|6 |1 |8&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Il quadrato di Albrecht Durer&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;In un'opera esoterica di Albrecht Durer, "Melancholia" del 1514 c'era raffigurato un particolare quadrato magico 4x4.&lt;br /&gt;&lt;br /&gt;|a|b |c&amp;nbsp; |d&lt;br /&gt;|e|x |y&amp;nbsp; |f&lt;br /&gt;|g|w|z&amp;nbsp; |h&lt;br /&gt;|i |j&amp;nbsp; |k |l&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Problema 4: Completiamo il quadrato di Albrecht Durer suppoenendo di avere:&lt;br /&gt;|16|&amp;nbsp; |&amp;nbsp; |13&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp; |&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |6|&amp;nbsp; |&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp; |1&lt;br /&gt;&lt;br /&gt;E' costituito da un quadrato interno x,y,w,z 2x2 e da una cornice esterna a,b,c,d,e,f,g,h,i,j,k,l. Le equazioni in gioco sono quindi:&lt;br /&gt;&lt;br /&gt;a+x+z+l=N&lt;br /&gt;b+x+w+j=N&lt;br /&gt;c+y+z+k=N&lt;br /&gt;d+y+w+i=N&lt;br /&gt;&lt;br /&gt;Sommando le 4 equazioni otteniamo:&lt;br /&gt;(a+b+c+d)+2(x+y+z+w)+(l+j+k+i)=4N poichè (a+b+c+d)=N e (l+j+k+i)=N allora è evidente che x+y+z+w=N &lt;i&gt;(proprietà a)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Però è anche vero che se sommiamo solo&lt;br /&gt;a+x+z+l=N&lt;br /&gt;d+y+w+i=N&lt;br /&gt;&lt;br /&gt;otteniamo che: (a+d+l+i)+(x+y+z+w)=2N quindi (a+d+l+i)=N cioè la somma degli angoli è pari a N &lt;i&gt;(proprietà b)&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Il quadrato gode della proprietà c che dividendolo in 4 quadrati alto a sinistra, basso a sinistra, alto a destra e &lt;br /&gt;basso a destra la somma dei numeri è uguale a N. A questo punto possiamo abbozzare alla soluzione del problema:&lt;br /&gt;&lt;br /&gt;1) Si suppone che il massimo numero è 16 e che il quadrato contenga da 1 a 16.&lt;br /&gt;2) Questa volta il numero magico è 1/4 del totale dei 16 numeri (1..16) ovvero N=34. &lt;br /&gt;3) per la proprietà b allora il numero all'angolo sinistro in basso è N-16-13-1=34-16-13-1=4.&lt;br /&gt;&lt;br /&gt;|16|&amp;nbsp; |&amp;nbsp; |13&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp; |&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |6|&amp;nbsp; |&lt;br /&gt;| 4 |&amp;nbsp; |&amp;nbsp; |1&lt;br /&gt;&lt;br /&gt;La diagonale si può completare N-13-6-4=34-23=11&lt;br /&gt;&lt;br /&gt;|16|&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |13&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; |11|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |6|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;| 4 |&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |1&lt;br /&gt;&lt;br /&gt;b,c possono essere solo 3,2 oppure 2,3 perchè la riga a+b+c+d=N&lt;br /&gt;&lt;br /&gt;|16|3| 2 |13&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; |11|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |6|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;| 4 |&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |1&lt;br /&gt;&lt;br /&gt;j e k possono essere solo 15,14 o 14,15 (Durer scelsa 15,14 così da avere la data 1514):&lt;br /&gt;&lt;br /&gt;|16|3&amp;nbsp;&amp;nbsp; | 2|13&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |11|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |6&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;| 4 |15|14|1&lt;br /&gt;&lt;br /&gt;A questo punto si riempe il quadrato interno facilmente&lt;br /&gt;&lt;br /&gt;|16|3&amp;nbsp; | 2 |13&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |10|11|&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |6&amp;nbsp; | 7 |&lt;br /&gt;| 4 |15|14|1&lt;br /&gt;&lt;br /&gt;Alla fine è:&lt;br /&gt;&lt;br /&gt;|16|3&amp;nbsp; | 2 |13&lt;br /&gt;| 5 |10|11| 8&lt;br /&gt;| 9 |6&amp;nbsp; | 7 |12&lt;br /&gt;| 4 |15|14| 1&lt;br /&gt;&lt;br /&gt;Ne esistono tante altre versioni:&lt;br /&gt;- quadrato&amp;nbsp; bimagico che è un quadrato che resta magico se si sostituiscono i suoi elementi con i i rispettivi&amp;nbsp;&lt;br /&gt;&amp;nbsp; quadrati,&lt;br /&gt;- quadrato trimagico, come prima ma con i cubi&lt;br /&gt;- quadrato magico geometrico, dove i prodotti delle righe (non le somme), delle traverse e delle diagonali&lt;br /&gt;&amp;nbsp; sono uguali&lt;br /&gt;- quadrati magici costituiti da lettere (il celebre SATOR rinvenuto negli scavi di Pompei del 79 d.c.)&lt;br /&gt;- quadrato di 7, contenente i 49 iniziali numeri primi&lt;br /&gt;- quadrati magici in base non decimale &lt;br /&gt;&lt;br /&gt;Interessante è la trattazione su essi fatta da &lt;i&gt;Jean-Pierre Alem &lt;/i&gt;nel suo "Giochi di ingegno e divertimenti matematici".&lt;br /&gt;&lt;br /&gt;Sui quadrati magici se non si dispone di un metodo matematico, si possono perdere mesi prima di trovare la soluzione. Interessante è ovviamente il metodo per costruirli. Narayana, nel suo &lt;i&gt;Ganida-Kamudi&lt;/i&gt;, illustrò un metodo di costruzione per i quadrati di lato 4n, 4n+-1, 4n+2. I 4n erano basati sulla mossa del cavallo degli scacchi. Per i primi due gruppi mostrò un criterio di costruzione per sovrapposizione di due quadrati (secoli dopo ripreso da &lt;i&gt;La Hire&lt;/i&gt;).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Per i giochi matematici in generale vi consiglio anche &lt;i&gt;Martin Gartner&lt;/i&gt; con il suo "Esperienza A-aH!" con cenni al "pensiero laterale", &lt;i&gt;Edouard Lucas&lt;/i&gt; con "Il gioco militare" e "Il labirinto". Non sono da meno, per gli appassionati: &lt;i&gt;Yakov Perelman &lt;/i&gt;con "Algebra ricreativa" tutto dedicato alla Teoria dei Numeri ed &lt;i&gt;Hernry Dudeney &lt;/i&gt;col suo "L'enigma del mandarino".&lt;br /&gt;&lt;br /&gt;Edouard Lucas nei suoi libri espone giochi famosi della sua epoca ma anche sue invenzioni: "La presa della bastiglia", la Torre di Hanoi, il gioco Paradoxal, il problema delle otto regine, problemi di Dama, gioco del Domino, problemi di giochi militari, problemi sui labirinti, problemi di teoria dei numeri etc.&lt;br /&gt;&lt;br /&gt;Lucas ovviamente è famosissimo per i suoi enormi contributi alla Teoria dei Numeri (procedimento della sequenza di Lucas e vari Teoremi).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Il TRIS&lt;/b&gt;&lt;br /&gt;Chi non ha mai giocato a TRIS? Si tratta di un quadrato 3x3 dove a turno ogni giocatore mette una 'x' oppure un cerchietto 'o' ad occupare le caselle.In esso vince chi riesce a mettere insieme tre simboli di fila in diagonale o lungo una traversa verticale o orizzontale. OK, il TRIS non ha niente di magico, ma capiremo con il gioco del quindici perchè l'ho introdotto.&lt;br /&gt;&lt;br /&gt;La strategia da adottare nel TRIS è semplice. Si occupa quella casella che offre più potenziali tris successivi. Ad esempio se si occupa il centro ci sono 4 potenziali tris, se si occupa un angolo si hanno 3 potenziali tris.&lt;br /&gt;Le risposte devono seguire lo stesso criterio. Se giocato in questo modo si giunge sempre alla patta, cioè il TRIS è un gioco a "somma zero" (Teoria dei giochi).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Un esempio di giocata è il seguente:&lt;br /&gt;| &amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;br /&gt;|&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|X | &amp;nbsp;&amp;nbsp; |&lt;br /&gt;&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |O |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|X | &amp;nbsp;&amp;nbsp; |&lt;br /&gt;&lt;br /&gt;|X |O |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|X | &amp;nbsp;&amp;nbsp; |&lt;br /&gt;&lt;br /&gt;Ha vinto il giocatore delle X. Se invece&lt;br /&gt;|&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;br /&gt;|&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp; |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|X | &amp;nbsp;&amp;nbsp; |&lt;br /&gt;&lt;br /&gt;|O |&amp;nbsp;&amp;nbsp;&amp;nbsp; |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|X |&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;&lt;br /&gt;|O |X |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|X | &amp;nbsp;&amp;nbsp; |&lt;br /&gt;&lt;br /&gt;|O |X |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X | &lt;br /&gt;|X |O |&lt;br /&gt;&lt;br /&gt;|O |X |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X |O &lt;br /&gt;|X |O |&lt;br /&gt;&lt;br /&gt;|O |X |O &lt;br /&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; |X |O &lt;br /&gt;|X |O |X&lt;br /&gt;&lt;br /&gt;Patta.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Il gioco del quindici&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Supponiamo di avere una fila di 9 caselle in successione: due giocatori a turno devono mettere un numero in una posizione qualsiasi.Vince chi fa somma 15 per prima. Che strategia si adotta? Se non lo si sa si è notevolmente svantaggiati.&lt;br /&gt;&lt;br /&gt;Lucas dimostrò che il gioco del 15 equivale ad un quadrato magico 3x3 con somma 15, da tenere a memoria:&lt;br /&gt;&lt;br /&gt;|4 |9 |2&lt;br /&gt;|3 |5 |7&lt;br /&gt;|8 |1 |6&lt;br /&gt;&lt;br /&gt;E la strategia di gioco da attuare? Quella del TRIS! La probabilità di vittoria è buona, se l'avversario ignora di dover giocare a TRIS su un quadrato magico, ma si arriva alla patta in caso contrario.&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-7171448949418768430?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/7171448949418768430/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/11/la-matematica-ed-i-giochi.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7171448949418768430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7171448949418768430'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/11/la-matematica-ed-i-giochi.html' title='La Matematica ed i giochi'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-4349753290750486684</id><published>2010-10-07T11:46:00.000-07:00</published><updated>2010-10-07T13:10:28.169-07:00</updated><title type='text'>Le riduzioni dell'esponente - i conti della serva</title><content type='html'>Abbiamo visto nei due blog precedenti il Piccolo Teorema di Fermat (PTF) e la generalizzazione di Eulero,&lt;br /&gt;che qui riassumiamo brevemente:&lt;br /&gt;&lt;br /&gt;a^n-1 mod n = 1 mod n (1)&lt;br /&gt;&lt;br /&gt;a^phi(n) mod n = 1 mod n (2)&lt;br /&gt;&lt;br /&gt;dove phi(n) è la funzione totiente di Eulero. Se p=n phi(n) = p-1 e la (2) e la (1) sono equivalenti. La &lt;i&gt;funzione totiente phi(n) è l'insieme di numeri minori di n coprimi con n.&lt;/i&gt; Ad esempio phi(8) = 4, perchè i numeri minori di 8 e coprimi con esso sono: 1,3,5,7. Se n è un numero primo ad esempio phi(7) = 6; infatti coprimi con 7 sono: 1,2,3,4,5,6.&lt;br /&gt;&lt;br /&gt;La cosa funziona sia con a e n coprimi che non. Se non sono coprimi, si parla di pseudo-primalità di n &lt;br /&gt;rispetto alla base a.&lt;br /&gt;&lt;br /&gt;Questo torna utile in vari tipi di problemi. Ad esempio se volessimo sapere qual è l'ultima cifra di 7^222?&lt;br /&gt;Oppure ridurre l'esponente nel calcolo del modulo? Qua è importante che a e n siano coprimi. &lt;br /&gt;&lt;br /&gt;Ora 7^222 mod 10 hanno 7 e 10 coprimi e phi(10)=4 {1,3,7,9}.&lt;br /&gt;Dalla (2) allora è 7^4 mod 10 = 1 mod 10 (3). &lt;br /&gt;&lt;br /&gt;Per cui tenendo conto della (3)&lt;br /&gt;7^222 mod 10 = 7^4*55+2 mod 10 = 7^(4*55) * 7^2 mod 10 = 1^55 * 7^2 mod 10 = 9 mod 10&lt;br /&gt;&lt;br /&gt;Questa tecnica funziona se a ed n sono coprimi e si ottiene elevando la base a al valore phi(n); difatti&lt;br /&gt;se x = y mod phi(n) allora a^x = a^y mod n. Inoltre è quella più "rapida".&lt;br /&gt;&lt;br /&gt;Cosa si risparmia? Facciamo il binary(x)&lt;br /&gt;&lt;br /&gt;? binary(222)&lt;br /&gt;%1 = [1, 1, 0, 1, 1, 1, 1, 0]&lt;br /&gt;? binary(2)&lt;br /&gt;%2 = [1, 0]&lt;br /&gt;&lt;br /&gt;Si risparmia molto, ma è un metodo lento per il test di primalità; adesso vediamo perchè.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Prima beffa&lt;/u&gt;&lt;br /&gt;Nel caso di 2^240 mod 241 = 1 mod 241 possiamo fare phi(241)=240 [qua già sappiamo che 241 è primo], &lt;br /&gt;il problema è di avere una eulerphi() che deve fare il MCD (algoritmo di Euclide) di tutti i numeri tra 1 e 241, contando quelli che hanno MCD(x,241)=1. Se il numero è molto più grande di 241, il metodo è lento e richiede, tra l'altro, una pre-elaborazione per la riduzione.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Seconda beffa&lt;/u&gt;&lt;br /&gt;Nella primalità quanto si risparmia in bit? nulla : 2^240 mod 241 = 2^240*1 mod 241. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Un'altra idea&lt;/u&gt;&lt;br /&gt;L'idea allora è quella di ridurre l'esponente dividendolo per un divisore e trasformare il test:&lt;br /&gt;&lt;br /&gt;a^n-1 mod n = 1 mod n &lt;br /&gt;&lt;br /&gt;La relazione di sopra comporta che se n è il numero dispari sotto test, n-1 è un pari sicuramente divisibile per 2 ... Per grossi valori di n&amp;nbsp; (n-1)/2 è intero; allora nel caso precedente avremo 2^120 mod 241. Ma&amp;nbsp; quanto abbiamo risparmiato? Facciamo anche qui il binary(x)&lt;br /&gt;&lt;br /&gt;? binary(240)&lt;br /&gt;%9 = [1, 1, 1, 1, 0, 0, 0, 0]&lt;br /&gt;? binary(120)&lt;br /&gt;%10 = [1, 1, 1, 1, 0, 0, 0]&lt;br /&gt;&lt;br /&gt;Si risparmia un solo bit!! Poco se vogliamo. Conviene quasi di lasciar fare al ModExp col numero integro.&lt;br /&gt;La discussione dimostra in modo semplice, senza tirar fuori la teoria della complessità che la velocità non si ottiene dalla riduzione dell'esponente ma dal numero di step necessari all'operazione modulo. Inoltre il test di primalità se vuole diventare più veloce necessita di ridurre molto il numero di basi di prova.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-4349753290750486684?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/4349753290750486684/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/10/le-riduzioni-dellesponente-i-conti.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4349753290750486684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4349753290750486684'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/10/le-riduzioni-dellesponente-i-conti.html' title='Le riduzioni dell&apos;esponente - i conti della serva'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-7897156259778979604</id><published>2010-10-06T14:32:00.000-07:00</published><updated>2010-10-06T14:32:51.488-07:00</updated><title type='text'>Miller-Rabin e i Numeri di Carmichael croce e delizia di Fermat</title><content type='html'>Il &lt;b&gt;Piccolo Teorema di Fermat&lt;/b&gt; (PTF), dovuto a &lt;i&gt;Pierre de Fermat &lt;/i&gt;e dimostrato successivamente da &lt;i&gt;Eulero &lt;/i&gt;ha un fascino inesauribile pur provenendo dal lontano Seicento. E' quasi sempre tirato in ballo, anche nei nuovi metodi di primalità come AKS etc.&lt;br /&gt;&lt;br /&gt;Vediamo in che consiste.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PTF&lt;/b&gt;:&lt;br /&gt;&amp;nbsp;se a^n mod n = a mod n allora n è primo (1)&amp;nbsp; o alternativamente&lt;br /&gt;&amp;nbsp;se a^n-1 mod n = 1 mod n allora n è primo. (2)&lt;br /&gt;&lt;br /&gt;La versione di Eulero tiene conto della funzione totiente phi(n) per cui:&amp;nbsp; a^phi(n) mod n = a mod n.&lt;br /&gt;&lt;br /&gt;Pierre de Fermat all'epoca pensava al solo test 2^n mod n = 2 mod n, che se era verificato allora n era un numero primo.&lt;br /&gt;&lt;br /&gt;Solo che ci si accorse presto che alcuni composti, detti &lt;i&gt;'numeri di Carmichael'&lt;/i&gt;, superavano il test e per cui affinchè il PTF fosse valido l'idea fu quello di testare n per vari valori di a, almeno un centinaio. In tal modo, visto che i numeri di Carmichael tendono al crescere di n ad essere rarefatti e molto distanti,allora il test era ancora valido e forniva una pseudo-primalità a-SPRP, cioè n risulta 'molto probabilmente' primo, se ha superato il test (1) per 100 valori di a.&lt;br /&gt;&lt;br /&gt;Se n molto è grande, testarne la primalità per 100 basi è un test troppo lento, anche se di solito siamo abituati, purtroppo, a lasciare lavorare i computer per diversi giorni. &lt;br /&gt;&lt;br /&gt;L'obiettivo di chi fa tali attività è trovare scorciatoie, per cercare di ottenere la primalità con poche risorse macchina e con poco tempo. Il che è difficilissimo, in molti casi impossibile!&lt;br /&gt;&lt;br /&gt;Però a pensarci, possiamo ideare insieme un metodo. Poi dopo vediamo quanto è veloce e con quale complessità (cercherò di non annoiarvi).&lt;br /&gt;&lt;br /&gt;Il problema del PTF non è il PTF stesso ma i numeri di Carmichael. Una lista di numeri Carmichael &lt;br /&gt;è presente a &lt;a href="http://oeis.org/classic/A002997"&gt;http://oeis.org/classic/A002997&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Il bello della faccenda che il PTF funziona bene alla rovescia: certifica con certezza i composti ma fornisce una pseudo-primalità per i primi! Ma questo è vero per tutti i test probabilistici (Miller-Rabin etc).&lt;br /&gt;&lt;br /&gt;Le domande che ci si può porre sono:&lt;br /&gt;1) Potremmo rendere l'algoritmo che si basa sul PTF un pò meno di pseudo-primalità? &lt;br /&gt;2) Possiamo fare solo un paio di test?&lt;br /&gt;&lt;br /&gt;Forse sì, forse no. Solo due test: uno che dovrebbe ridurre di parecchio il fatto che n sia un numero di Carmichael ed uno costituito dal PTF con a=2. Un sogno finora...&lt;br /&gt;&lt;br /&gt;Il Teorema di Chernick dice che i numeri di Carmichael generici sono tali da avere una forma&lt;br /&gt;(6k+1)*(12k+1)*(18k+1) con ogni fattore primo.&lt;br /&gt;&lt;br /&gt;Un'idea semplice è allora scrivere in PARI/GP un Charmichael's Test:&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;*&amp;nbsp; Carmichael's test&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;CT(number)= local(ret=0,x=0); { &lt;br /&gt;/* Se lo trova esce 0 */ &lt;br /&gt;&amp;nbsp;if( number == 561 | number == 1105, return(0););&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;trap( , return(1), &lt;br /&gt;&amp;nbsp;&amp;nbsp; x=solve(k=1,number,(6*k+1)*(12*k+1)*(18*k+1) - number);&lt;br /&gt;&amp;nbsp;&amp;nbsp; if(frac(x)!=0.0, ret=1); /* Only integer */&lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;return(ret); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Fissato&amp;nbsp; number l'idea è quella di risolvere una equazione cubica (6*k+1)*(12*k+1)*(18*k+1) - number = 0, se ha una soluzione intera abbiamo individuato un composto di Carmichael e sicuramente i tre fattori sono primi. E' stato introdotto il correttivo che l'equazione non individua cioè i due numeri 561 e 1105.&lt;br /&gt;&lt;br /&gt;Purtroppo&amp;nbsp; sono possibili forme di Carmichael anche a più di 3 fattori:&lt;br /&gt;(7k+1)(8k+1)(11k+1)&lt;br /&gt;(6k+1)(12k+1)(18k+1)(36k+1)&lt;br /&gt;(18k+1)(36k+1)(108k+1)(162k+1)&lt;br /&gt;(24k+1)(72k+1)(192k+1)(288k+1)&lt;br /&gt;(60k+1)(90k+1)(300k+1)(450k+1)&lt;br /&gt;(60k+1)(240k+1)(300k+1)(600k+1)&lt;br /&gt;(42k+1)(252k+1)(588k+1)(882k+1)&lt;br /&gt;&amp;nbsp;etc.&lt;br /&gt;&lt;br /&gt;Inoltre il test di sopra andrebbe male ad esempio con 885 (altra forma del tipo kl(n)+1), anch'esso numero di &lt;br /&gt;Carmichael.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Versione generalizzata del Teorema di Chernick&lt;/u&gt;&lt;br /&gt;Se un numero di Carmichael n è considerato nella sua forma canonica n&amp;nbsp; =&amp;nbsp; k lambda(n) + 1&amp;nbsp; e se qualche divisore d di k è tale che il numero&amp;nbsp;&amp;nbsp; p&amp;nbsp; =&amp;nbsp; d l(n) + 1&amp;nbsp; sia primo, allora pn è un altro numero di Carmichael, dove&lt;i&gt; lambda(n) è la funzione ridotta totiente&lt;/i&gt;, detta anche &lt;i&gt;funzione lambda di Carmichael&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;l&lt;i&gt;ambda(n) è il più piccolo intero positivo tale che x^m = 1 (mod n) per tutti gli x relativamente primi a n; in tal caso m=lambda(n); lambda(n) è anche l'esponente del gruppo moltiplicativo Zn&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;La funzione lambda di Charmichael può essere calcolata nel seguente modo:&lt;br /&gt;&amp;nbsp;&amp;nbsp; lambda(1) = 1,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; lambda(2) = 1,&lt;br /&gt;&amp;nbsp;&amp;nbsp; lambda(2^2) = 2,&lt;br /&gt;&amp;nbsp;&amp;nbsp; lambda(2^e) = 2^(e-2) for e &amp;gt; 2,&lt;br /&gt;&amp;nbsp;&amp;nbsp; lambda(p^e) = (p-1)*p^(e-1) for p &amp;gt; 2 and prime,&lt;br /&gt;&amp;nbsp;&amp;nbsp; lambda(p[1]^e[1]*...*p[r]^e[r]) =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCM[lambda(p[1]^e[1]),...,lambda(p[r]^e[r])],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; all p[i]'s prime.&lt;br /&gt;LCM è il minimo comune multiplo.&lt;br /&gt;Inoltre l(q) = phi(q) se q è una potenza di un primo.&lt;br /&gt;&lt;br /&gt;Ad esempio:&lt;br /&gt;&amp;nbsp;&amp;nbsp; lambda(2^e*5^f) = 2^(e-2)*5^(f-1), e &amp;gt; 3.&lt;br /&gt;&lt;br /&gt;Per valutare 9^170489 = a (mod 5000000), si puà calcolare nell'ordine&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^2 = 81 (mod 5000000)&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^4 = (9^2)^2 = 81^2 = 6561 (mod 5000000)&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^5 = (9^4)*9 = 6561*9 = 59049 (mod 5000000)&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^10 = (9^5)^2 = 59049^2 = 1784401 (mod 5000000)&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^20 = (9^10)^2 = 1784401^2 = 1928801 (mod 5000000)&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^40 = (9^20)^2 = 1928801^2 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^41 = 9^40*9 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^82 = (9^41)^2 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^83 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^166 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^332 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^664 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^665 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^1330 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^1331 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^2662 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^2663 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^5326 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^5327 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^10654 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^10655 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^21310 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^21311 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^42622 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^85244 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^170488 = ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9^170489 = ... = a (mod 5000000).&lt;br /&gt;&lt;br /&gt;Ad ogni step si fa il quadrato dell'esponente (by squaring) oppure aggiungendo 1 ad esso (multiplying by 9). Ciò è relazionato alla espansione binaria di 170489. Possiamo ricordare tutti i numeri relativamente piccoli con la riduzione modulo 5000000 dopo ogni step.&lt;br /&gt;&lt;br /&gt;Anzicchè usare il lambda(n), forse la tecnica di esponenziazione by squaring del blog precedente, simile, ma risulta più rapida.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Repunit&lt;/u&gt;&lt;br /&gt;Se stiamo testando dei Repunit abbiamo meno problemi: un numero Repunit difficilmente è un numero di Carmichael! I repunit sono i numeri ottenibili ad esempio da (10^n-1)/9&amp;nbsp; e caratterizzati da tutti 1.&lt;br /&gt;&lt;br /&gt;Ad esempio&lt;br /&gt;(10^n - 1)/9 = (6*k+1)*(12*k+1)*(18*k+1) difficilmente ha soluzione intera.&lt;br /&gt;&lt;br /&gt;Seppoi lo trovate il Repunit-Carmichael siete da record!&lt;br /&gt;&lt;br /&gt;Quanto conta ridurre un esponente? Quasi sicuramente non serve. Si riduce di 1 bit o qualcosina di più. &lt;br /&gt;&lt;br /&gt;Ma è più veloce:&lt;br /&gt;2^a mod a = 2 mod a&lt;br /&gt;&lt;br /&gt;piuttosto che &lt;br /&gt;2^a-1 mod a = 1 mod a&lt;br /&gt;&lt;br /&gt;o addirittura tecniche ulteriori di divisione di a-1 per fattori anche primi.&lt;br /&gt;&lt;br /&gt;Quello che conta è, invece, il numero di operazioni impiegate per il ModExp. Più si riducono e più il software diventa veloce (Sapreste trovare un metodo più corto?).&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Un altro Metodo simile&lt;/u&gt;&lt;br /&gt;Nei primi 100 milioni di numeri ci sono solo 255 numeri di Carmichael e &lt;br /&gt;più si va oltre e più si rerafanno. Solo che è stato dimostrato il &lt;i&gt;Teorema:"I numeri di Carmichael sono infiniti."&lt;/i&gt; (Uffa!)&lt;br /&gt;&lt;br /&gt;L'idea delle equazioni però è sempre alla base di queste cose ed ha fatto già accendere la lampadina a qualcun altro (gli americani la lampadina la chiamano quoziente intelletivo "ah!") : &lt;i&gt;Miller-Rabin&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Se nella (2) poniamo che n-1= 2^t * u dove u è dispari e t&amp;gt;=1, allora la (2) è equivalente a:&lt;br /&gt;&lt;br /&gt;(3) a^u*(2t) = mod n&lt;br /&gt;&lt;br /&gt;In sostanza la (3) suggerisce di calcolare a^u mod n e poi di elevare il risultato al quadrato per t volte!&lt;br /&gt;&lt;br /&gt;Inizialmente è: &lt;br /&gt;x0 = a^u mod n&lt;br /&gt;ad ogni step invece: &lt;br /&gt;xi = xi-1^2 mod n&lt;br /&gt;&lt;br /&gt;per cui alla fine abbiamo l'equazione xt^n-1 = 1 mod n (oppure -1 mod n)&lt;br /&gt;&lt;br /&gt;Poichè l'unità mod n ha radici non banali se e solo se il numero non è un primo, allora è possibile creare una funzione witness(a,n) che se durante l'elevazione al quadrato trova una radice banale dell'unità modulo n allora restituisce subito 0, se non trova radici non banali restituisce alla fine 1. Si deve però provare con diverse basi tra 1 e n: per tutte deve essere verificato.&lt;br /&gt;&lt;br /&gt;Vediamo come si comporta con un numero primo. Supponiamo che n=29 allora n-1 = 28 = 2^2 * 7. &lt;br /&gt;&lt;br /&gt;Sia a=10. Qui 2^t=2^2 u=7, t=2 allora è: &lt;br /&gt;x0 = 10^u mod n = 10^7&amp;nbsp; mod 29 = 17&lt;br /&gt;x1 = x0^2 mod n = 17^2 mod 29 = 28&lt;br /&gt;x2 = x1^2 mod n = 28^2 mod 29 = 1&amp;nbsp; STOP (la radice banale sintomo di primo!)&lt;br /&gt;&lt;br /&gt;Sia a=2. Qui 2^t=2^2 u=7, t=2 allora è: &lt;br /&gt;x0 = 2^u mod n = 2^7&amp;nbsp; mod 29 = 12&lt;br /&gt;x1 = x0^2 mod n = 12^2 mod 29 = 28&lt;br /&gt;x2 = x1^2 mod n = 28^2 mod 29 = 1&amp;nbsp; STOP (la radice banale sintomo di primo!)&lt;br /&gt;&lt;br /&gt;Se si verifica tra 1 e n,&amp;nbsp; è sempre lo stesso discorso. Quindi è primo.&lt;br /&gt;&lt;br /&gt;Vediamo n=561 che è un numero di Carmichael, allora n-1 = 560 = 2^4 * 35. Supponiamo che la base scelta sia 2. Qui 2^t=2^4 u=35, t=4 allora è: &lt;br /&gt;&lt;br /&gt;x0 = 2^u&amp;nbsp; mod n = 2^35&amp;nbsp; mod 560 = 368&lt;br /&gt;x1 = x0^2 mod n = 368^2 mod 560 = 464&lt;br /&gt;x2 = x1^2 mod n = 464^2 mod 560 = 256&lt;br /&gt;x3 = x2^2 mod n = 256^2 mod 560 = 16&lt;br /&gt;x4 = x3^2 mod n =&amp;nbsp; 16^2 mod 560 = 16&lt;br /&gt;&lt;br /&gt;Se si ripete per a=10&lt;br /&gt;&lt;br /&gt;x0 = 10^u&amp;nbsp; mod n = 10^35&amp;nbsp; mod 560 = 320&lt;br /&gt;&lt;br /&gt;x1 = x0^2 mod n = 320^2 mod 560 = 480&lt;br /&gt;x2 = x1^2 mod n = 464^2 mod 560 = 240&lt;br /&gt;x3 = x2^2 mod n = 256^2 mod 560 = 480&lt;br /&gt;x4 = x3^2 mod n =&amp;nbsp; 16^2 mod 560 = 240&lt;br /&gt;&lt;br /&gt;Uhmmm ...&lt;br /&gt;&lt;br /&gt;E' composto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Quante basi?&lt;br /&gt;Ce lo suggeriscono due teoremi&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Teorema 1&lt;/i&gt;&lt;br /&gt;Se n e' un numero dispari non primo, allora il numero di elementi per cui la funzione witness da esito positivo sono almeno (n−1)/2.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Teorema 2&lt;/i&gt;&lt;br /&gt;Per ogni intero dispari n &amp;gt; 2 e per ogni intero positivo b (numero di base), la probabilità che Miller-Rabin(n,b) si sbagli è al massimo 2^−b.&lt;br /&gt;&lt;br /&gt;Quindi la scelta di b &amp;gt;= 40 potrebbero essere sufficienti, grazie ad una probabilità migliore al solo PTF su 100 basi.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Riferimenti&lt;/b&gt;&lt;a href="http://www.numericana.com/answer/modular.htm#carmlarge"&gt;http://www.numericana.com/answer/modular.htm#carmlarge&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html"&gt;http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-7897156259778979604?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/7897156259778979604/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/10/miller-rabin-e-i-numeri-di-carmichael.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7897156259778979604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7897156259778979604'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/10/miller-rabin-e-i-numeri-di-carmichael.html' title='Miller-Rabin e i Numeri di Carmichael croce e delizia di Fermat'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-5457416368572949355</id><published>2010-10-03T02:15:00.000-07:00</published><updated>2010-10-03T03:45:23.208-07:00</updated><title type='text'>Il modulo: strumento per test di primalità e crittografia</title><content type='html'>I test di primalità sono spesso una combinazione di due tecniche:&lt;br /&gt;- evidenziano rapidamente se un numero è composto&lt;br /&gt;- se non è composto devono avere un algoritmo rapido di primalità: deterministico (&lt;a href="http://en.wikipedia.org/wiki/AKS_primality_test"&gt;AKS&lt;/a&gt;, Lehmer, etc) o&lt;br /&gt;&amp;nbsp; probabilistico (&lt;a href="http://it.wikipedia.org/wiki/Test_di_Miller-Rabin"&gt;Miller-Rabin&lt;/a&gt;, Fermat, etc)&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Oggi la "grande sfida numerica" per gli sviluppatori, i matematici e chi si interessa di hardware per tali tipi di problemi (primalità), è realizzare hw e/o algoritmi più efficienti di quelli disponibili, anche attraverso lo sviluppo di nuovi Teoremi di Teoria dei numeri.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;E' noto che per verificare la primalità di un numero primo o anche per generare le chiavi pubbliche e private &lt;br /&gt;(vedi RSA) nella crittografia, si fa uso dell'operatore aritmetico &lt;i&gt;modulo&lt;/i&gt;, che restituisce il resto della divisione intera.&lt;br /&gt;&lt;br /&gt;Ad esempio nel Piccolo Teorema di Fermat è noto che "se a^p-1 mod p = 1 mod p allora p è primo. Per evitare i &lt;a href="http://it.wikipedia.org/wiki/Numero_di_Carmichael"&gt;&lt;i&gt;numeri di Carmichel&lt;/i&gt;&lt;/a&gt; si testa per diverse basi per cui si individua un numero che &lt;i&gt;molto probabilmente&lt;/i&gt; è primo.&lt;br /&gt;&lt;br /&gt;Il problema che nasce è che se p-1 è un numero molto elevato a^p-1 mod p richiede un tempo notevole di calcolo.&lt;br /&gt;&lt;br /&gt;Per tale motivo si usano "&lt;i&gt;tecniche di riduzione&lt;/i&gt;" per velocizzare il calcolo, effetto che si nota soprattutto se il numero è di "grandissime dimensioni".&lt;br /&gt;&lt;br /&gt;Se ad esempio a=2345 b=2345678 c=341 &amp;nbsp; allora &lt;i&gt;a^b mod c&lt;/i&gt; si può sostituire con &lt;i&gt;a^c mod b&lt;/i&gt;. Se questo è conveniente perchè adesso l'esponente è minore, col &lt;a href="http://it.wikipedia.org/wiki/Piccolo_teorema_di_Fermat"&gt;&lt;i&gt;Piccolo Teorema di Fermat&lt;/i&gt;&lt;/a&gt; non è conveniente; difatti da a^p-1 mod p si passa a&amp;nbsp; a^p mod p-1 come l'algoritmo che segue (ma&amp;nbsp; abbiamo peggiorato le cose sostituendo p-1 con p): &lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;** Simple Method&lt;br /&gt;*/&lt;br /&gt;pMod(base,exponent,modulus)= local(ret=1); {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;ret = lift(Mod(base, modulus)^exponent);&lt;br /&gt;return(ret);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un'altra possibilità, se l'esponente è troppo grande, in Mod(a,N)^n è di usare una riduazione del tipo Mod(n, phi(N)), dove phi(N) è la &lt;a href="http://it.wikipedia.org/wiki/Funzione_%CF%86_di_Eulero"&gt;&lt;i&gt;funzione totiente di Eulero&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Una modalità più efficiente è di lavorare con gli esponenti in binario ( tra l'altro sono possibili creazioni &lt;br /&gt;di processori che lavorano in questo modo): tale tecnica è nota come "&lt;i&gt;exponentiation squaring&lt;/i&gt;", proposta&lt;br /&gt;da &lt;i&gt;Bruce Schneier nel suo Applied Cryptography, 2e, ISBN 0471117099&lt;/i&gt;. Questo metodo richiede un tempo costante indipendente dall'input, si dice che è a &lt;i&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Rtac.pdf"&gt;complessità&lt;/a&gt; lineare&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;**&amp;nbsp; Fast Mod Exp: exponentiation by squaring &lt;br /&gt;**&lt;br /&gt;**&amp;nbsp; Concrete implementation by R. Turco&lt;br /&gt;*/&lt;br /&gt;ModExp(base,exponent, modulus) = local(ret=1,i=1); {&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;b = binary(exponent);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;i = length(b);&lt;br /&gt;&amp;nbsp;while(exponent&amp;gt;0 &amp;amp; i&amp;gt;0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(b[i]==1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = lift(Mod((ret * base), modulus));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exponent = exponent &amp;gt;&amp;gt; 1;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base = lift(Mod((base * base), modulus));&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i--;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;return(ret);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;La tecnica mette insieme anche l'altra tecnica dello "&lt;i&gt;Square e Multiply&lt;/i&gt;" che vediamo di seguito, anche questa con esponenziazione binaria:&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;** Square &amp;amp; Multiply &lt;br /&gt;**&amp;nbsp; &lt;br /&gt;*/&lt;br /&gt;SqMod(base,exponent,modulus)= local(residue=1); {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;b = binary(exponent);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;len = length(b);&amp;nbsp; &lt;br /&gt;&amp;nbsp;for(i=1,len,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; residue=(lift(Mod(residue,modulus)^2)*(base^b[i])) % modulus;&lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;return(residue); &lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Lo square &amp;amp; multiply, usato nel &lt;a href="http://it.wikipedia.org/wiki/RSA"&gt;RSA&lt;/a&gt; o altri come &lt;a href="http://it.wikipedia.org/wiki/Advanced_Encryption_Standard"&gt;AES&lt;/a&gt; per le chiavi, potrebbe essere soggetto ad attacchi furbi per il crack delle chiavi stesse.&lt;br /&gt;&lt;br /&gt;Esistono anche altri algoritmi basati sulla tecnica "&lt;i&gt;Montgomery reduction&lt;/i&gt;" e varianti come la "&lt;i&gt;Barrett’s reduction&lt;/i&gt;" che usano un pre-processing e che sono interessanti per la produzione di HW ad hoc (sia basati sul binario ma preferibilmente sulle word). La "Montgomery reduction" è possibile anche sulle &lt;a href="http://it.wikipedia.org/wiki/Curva_ellittica"&gt;curve ellittiche&lt;/a&gt; GF(2^k). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Riferimenti&lt;/b&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Montgomery_reduction"&gt;http://en.wikipedia.org/wiki/Montgomery_reduction&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Elliptic_curve_cryptography"&gt;http://en.wikipedia.org/wiki/Elliptic_curve_cryptography&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/RSA"&gt;http://en.wikipedia.org/wiki/RSA&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.it.uu.se/edu/course/homepage/security/vt09/labs/lab2"&gt;http://www.it.uu.se/edu/course/homepage/security/vt09/labs/lab2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Propri lavori su tecniche di primalità &lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/PrimTech.pdf"&gt;http://www.gruppoeratostene.com/articoli/PrimTech.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Rtc2009.pdf"&gt;http://www.gruppoeratostene.com/articoli/Rtc2009.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/PDC.pdf"&gt;http://www.gruppoeratostene.com/articoli/PDC.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Mersenne.pdf"&gt;http://www.gruppoeratostene.com/articoli/Mersenne.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Rtac.pdf"&gt;http://www.gruppoeratostene.com/articoli/Rtac.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Implementazioni Software&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/programmi/programmi.htm"&gt;http://www.gruppoeratostene.com/programmi/programmi.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-5457416368572949355?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/5457416368572949355/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/10/il-modulo-strumento-per-test-di.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5457416368572949355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5457416368572949355'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/10/il-modulo-strumento-per-test-di.html' title='Il modulo: strumento per test di primalità e crittografia'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-7435588095951896062</id><published>2010-09-26T10:56:00.000-07:00</published><updated>2010-09-26T15:05:41.265-07:00</updated><title type='text'>Prolog, Web Semantico e Social Network</title><content type='html'>All'università e per scopi personali, per 3-4 anni ho sperimentato il Prolog. Tale linguaggio fa parte della famiglia dei linguaggi della Logical Programming, molto interessante e basato su predicati e clausule, con uno schema tipico&lt;i&gt; Soggetto Predicato Valore&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Dopo una fase in cui il Prolog si era stagnato, ecco che i progetti Open Source tirano fuori dal cilindro &lt;br /&gt;il pacchetto software &lt;i&gt;SWI-PROLOG&lt;/i&gt;, dal nome dell'università di Amsterdam "Sociaal-Wetenschappelijke Informatica", e il cui autore principale è &lt;i&gt;Jan Wielemaker&lt;/i&gt; (Vedi&lt;a href="http://www.blogger.com/%20http://it.wikipedia.org/wiki/SWI-Prolog"&gt; http://it.wikipedia.org/wiki/SWI-Prolog&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;L'importanza del SWI-Prolog e della sua ripresa risiede tutto dietro a 4 cose:&amp;nbsp; il &lt;i&gt;Web semantico&lt;/i&gt; e la &lt;i&gt;Social Network Analysis&lt;/i&gt;, i &lt;i&gt;motori di ricerca&lt;/i&gt; e la problematica del &lt;i&gt;knowledge Management&lt;/i&gt; nelle aziende.&lt;br /&gt;&lt;br /&gt;Il concetto è questo: "Se nel pubblicare su Web i dati, essi sono accompagnati da particolari metadati semantici che permettono di relazionare le informazioni e la loro rilevanza, allora successivamente è possibile studiare i grafi, statici e dinamici, che si formano a seguito delle relazioni di aggregazione stabilite naturalmente tra le persone e comprendere il loro comportamento. In tal modo si possono a scopo di marketing segmentare le persone, sui gusti etc e poter fare advertising mirato, pubblicità e offerte".&lt;br /&gt;&lt;br /&gt;Il fine ultimo è la Social Network Analisys, analizzando i grafi e i "cluster di dati" che si formano, con algoritmi particolari (vedi l'articolo "Introduzione agli algoritmi di clustering &lt;a href="http://www.gruppoeratostene.com/articoli/Algoritmi%20di%20clustering.pdf"&gt;http://www.gruppoeratostene.com/articoli/Algoritmi%20di%20clustering.pdf&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Per ottenere tali dati, il "trucco" è di offrire tools di aggregazione sociale: &lt;i&gt;Facebook&lt;/i&gt;, &lt;i&gt;Google&lt;/i&gt;, &lt;i&gt;Twitter&lt;/i&gt;, etc. I vostri dati saranno valutati, verrete osservati come interagite nel gruppo, se siete dei leader, se siete l'anello di congiunzione tra più gruppi, se avete peso sugli altri, quanto interagite etc. (leggetevi cosa sono le Social Network e i grafi associati è interessante tutta la teoria, altrimenti suggeritemi cosa non avete ben compreso e proverò a spiegarvelo).&lt;br /&gt;&lt;br /&gt;Ma per ottenere qualcosa di meglio non si può rinunciare al Web semantico: non basta HTML, XML etc. Si devono introdurre concetti di relazione e gli strumenti adatti a tale scopo&amp;nbsp; discendono da concetti di Prolog: Soggetto Predicato Valore.&lt;br /&gt;Ad esempio questo si può ottenere con tre risorse già esistenti: l'XML, gli URI e i namaspace ma in una forma più attinente. Difatti si usano:&lt;br /&gt;- RDF (Resource Description Framework)&lt;br /&gt;- N3&amp;nbsp; ed N3 con namespace (un miglioramento rispetto a RDF)&lt;br /&gt;- OWL&lt;br /&gt;- etc.&lt;br /&gt;&lt;br /&gt;Se occorre aggiungere metadati in abbondanza, occorre anche produrre strumenti di produttività che possano snellire la fase di aggiunta dei metadati tra le pagine web o tra i Referee dei documenti scientifici o altro etc. In tal modo si avrà un web che "ragiona", che possa trovare cose attinenti con una maggiore precisione, distinguire se un riferimento è già stato trovato e presentato.&lt;br /&gt;&lt;br /&gt;Si possono creare &lt;i&gt;Page Searcher logici o meta-crowler logici (Meta-PrologCrowler&lt;/i&gt;) ed efficaci &lt;i&gt;XML-PrologParser&lt;/i&gt; per rendere migliori i motori di ricerca attuali e far decollare il Knowledge Management.&lt;br /&gt;&lt;br /&gt;A tal proposito si potranno creare anche Web server ad hoc, o aggiungere plug-in a quelli esistenti. Intanto sono nate librerie come PiLLoW per integrare la Logic Programming ed il WWW.&lt;br /&gt;&lt;br /&gt;Comunque il prolog è efficace anche nell'analisi dei grafi (e non solo). Non ci credete? Installatevi SWI-Prolog e ricopiate il programmino che vi propongo (mettendolo in un file grafo.pl):&lt;br /&gt;&lt;br /&gt;arco(a,b,5).&lt;br /&gt;arco(b,c,5).&lt;br /&gt;arco(c,d,7).&lt;br /&gt;arco(d,a,4).&lt;br /&gt;arco(b,d,9).&lt;br /&gt;arco(d,e,5).&lt;br /&gt;arco(a,e,7).&lt;br /&gt;arco(c,e,8).&lt;br /&gt;&lt;br /&gt;/* connessione a doppio senso di marcia */&lt;br /&gt;andare(X,Y,K) :- arco(X,Y,K).&lt;br /&gt;andare(X,Y,K) :- arco(Y,X,K).&lt;br /&gt;&lt;br /&gt;/* raggiungibile con 1,2,3 passi */&lt;br /&gt;raggiungibili(A,B) :- andare(A,B,_).&lt;br /&gt;raggiungibili(A,B) :- andare(A,X,_), andare(X,B,_).&lt;br /&gt;raggiungibili(A,Z) :- andare(A,X,_), andare(X,Y,_), andare(Y,Z,_).&lt;br /&gt;&lt;br /&gt;/* raggiungibile con calcolo della LUNGHEZZA */&lt;br /&gt;percorso1(A,Z,K) :- andare(A,Z,K).&lt;br /&gt;percorso2(A,Z,K) :- andare(A,Z,K1), percorso1(X,Z,K2), K is K1+K2.&lt;br /&gt;percorso3(A,Z,K) :- andare(A,Z,K1), percorso2(X,Z,K2), K is K1+K2.&lt;br /&gt;&lt;br /&gt;A questo punto avviate SWI-Prolog. Fate: File-&amp;gt;Consult-&amp;gt;grafo.pl ed ora proviamo a fare delle domande.&lt;br /&gt;&lt;br /&gt;Vogliamo sapere se esiste un percorso tra a e d (attenzione a digitare il punto che è importante). &lt;br /&gt;percorso1(a,d,X).&lt;br /&gt;X=4&lt;br /&gt;La risposta è Sì: è a distanza 4&lt;br /&gt;&lt;br /&gt;Vogliamo sapere se esistono altri percorsi tra a e d? digitiamo ";" ed esce false.&lt;br /&gt;&lt;br /&gt;Proviamo: &lt;br /&gt;percorso1(b,e,X).&lt;br /&gt;false.&lt;br /&gt;&lt;br /&gt;Proviamo:&lt;br /&gt;percorso2(a,e,X).&lt;br /&gt;X=12;&lt;br /&gt;X=14;&lt;br /&gt;X=15;&lt;br /&gt;false.&lt;br /&gt;&lt;br /&gt;Proviamo invece:&lt;br /&gt;percorso3(a,e,X).&lt;br /&gt;X = 17 ;&lt;br /&gt;X = 19 ;&lt;br /&gt;X = 20 ;&lt;br /&gt;X = 19 ;&lt;br /&gt;X = 21 ;&lt;br /&gt;X = 22 ;&lt;br /&gt;X = 20 ;&lt;br /&gt;X = 22 ;&lt;br /&gt;X = 23 ;&lt;br /&gt;false.&lt;br /&gt;&lt;br /&gt;Come si vede realizza anche una base dati di conoscenza tutto sommato, e potrebbe essere utile, questo esempio, per delle tabelle di routing di rete.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Riferimenti&lt;/b&gt;&lt;br /&gt;www.swi-prolog.org&lt;br /&gt;http://it.wikipedia.org/wiki/Web_semantico&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-7435588095951896062?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/7435588095951896062/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/prolog-web-semantico-e-social-network.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7435588095951896062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7435588095951896062'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/prolog-web-semantico-e-social-network.html' title='Prolog, Web Semantico e Social Network'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-3761769715598198064</id><published>2010-09-25T07:27:00.000-07:00</published><updated>2010-09-25T07:42:08.573-07:00</updated><title type='text'>Schedulazioni vincenti e labirinti tenebrosi, con il bastone da maresciallo nello zaino ...</title><content type='html'>Il vantaggio di usare strumenti LP è di astrarsi dalla programmazione software e concentrarsi solo sulla formulazione matematica. Ciò non toglie che si può programmare in progetti più grandi con C/C++/Java e librerie LP disponibili (come le API offerte da GNUWin32 o anche per Linux/Unix con l'uso di Database).&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Vediamo un classico: dovete fare con Microsoft Project un diagramma di &lt;i&gt;GANTT&lt;/i&gt; con &lt;i&gt;risorse&lt;/i&gt;, &lt;i&gt;task&lt;/i&gt; in cascata o parallelizzabile e le &lt;i&gt;milestone&lt;/i&gt; con ogni opportuna data e descrizione; poi vi hanno richiesto il &lt;i&gt;diagramma di Pert&lt;/i&gt; per comprendere i task critici. Sapete l'inizio e la fine desiderata, quanto serve per ogni attività, quante persone, ma occorre far entrare il tutto nel&amp;nbsp; periodo richiesto. E' possibile o impossibile? Come e quali attività si devono parallelizzare? Quello ottenuto è il meglio possibile o esistono anche altre soluzioni?&lt;br /&gt;&lt;br /&gt;Al di là di ulteriori elementi che dipendono dal tipo di lavoro in gioco, stiamo parlando di un problema di pianificazione o scheduling, che rientra tra i problemi NP-completi!&lt;br /&gt;&lt;br /&gt;In sostanza le stesse informazioni accennate sopra, come barre nel GANTT e le timeline si possono tradurre in un grafo matematico dove i nodi possono essere i nomi dei task, gli archi orientati il cambio di sequenza da un task ad un altro (e la dipedendenza anche tra essi sequenziale), mentre i pesi sugli archi possono rappresentare il tempo necessario allo svolgimento del task. Nel grafo potremmo avere anche parallelizzazioni di task , cioè situazioni in cui da un nodo escono contemporaneamente più archi verso altri nodi.&lt;br /&gt;&lt;br /&gt;Con un grafo, quindi, si possono formulare varie tipologie di problemi. Per grafo pesato orientato intendiamo &lt;br /&gt;una struttura G(N, A), con N insieme dei nodi e cardinalità | N |, ed A insieme degli archi e cardinalità | A |. &lt;br /&gt;L'insieme degli archi, A, è caratterizzato da un orientamento da nodo origine ad uno destinazione i,j.&lt;br /&gt;&lt;br /&gt;In generale l'obiettivo di un "problema di scheduling" matematico è di ottimizzare una o più grandezze di &lt;br /&gt;performance tra le seguenti:&lt;br /&gt;- minimizzare la massima "&lt;i&gt;lateness&lt;/i&gt;" o il massimo ritardo (non dite che ve l'ho detto io!) &lt;br /&gt;- minimizzare i &lt;i&gt;costi/tempi del setup&lt;/i&gt;&lt;br /&gt;- minimizzare il "&lt;i&gt;makespan&lt;/i&gt;" (la massima lunghezza temporale o l'elapsed time totale)&lt;br /&gt;&lt;br /&gt;Per risolvere, nel miglior modo possibile, un tale problema sono possibili varie strategie:&lt;br /&gt;1 - algoritmi tipici della teoria dello scheduling&lt;br /&gt;2 - algoritmi legati ai grafi&lt;br /&gt;&lt;br /&gt;Un algoritmo tipico della teoria dello scheduling è quello MST (&lt;i&gt;Minimum Spanning Tree&lt;/i&gt;) o minimo albero ricoprente. Nel MST il problema è definito nel seguente modo: sia dato un grafo orientato pesato G(N, A), con un insieme di interi senza segno definito sugli archi, allora l'obiettivo è quello di determinare una struttura che connetta tutti i nodi del grafo con archi di peso minimo. &lt;br /&gt;&lt;br /&gt;Un &lt;i&gt;albero ricoprente di&lt;/i&gt; &lt;i&gt;costo minimo&lt;/i&gt; è tipicamente una struttura con un unico nodo origine, detto &lt;i&gt;radice&lt;/i&gt;, ed una serie di rami; il "&lt;i&gt;cammino&lt;/i&gt;" da individuare è composto dall'insieme dei nodi in una sequenza tale che la somma dei pesi sui rami sia la minima possibile.&lt;br /&gt;&lt;br /&gt;E' evidente che l'MST ci porta a minimizzare il "makespan". Poichè abbiamo a che fare con un grafo a numero di nodi fissi, (ricordate cosa abbiamo detto circa il &lt;i&gt;problema di Steiner&lt;/i&gt;?) allora è possibile usare l'&lt;i&gt;algoritmo di Kruskal&lt;/i&gt; (vi rimando al blog precedente per tale algoritmo).&lt;br /&gt;&lt;br /&gt;Ma dobbiamo aprire una parentesi sui &lt;i&gt;labirinti &lt;/i&gt;per comprendere il punto 2 precedente e concludere il discorso sullo scheduling. Quindi c'è un interrupt e salvate un attimo il contesto sullo stack.&lt;br /&gt;&lt;br /&gt;Come vedremo le tecniche di ottimizzazione congiunte spesso vengono utilizzate per risolvere problemi complessi che non ricadono in una branca specifica dell'ottimizzazione.&lt;br /&gt;&lt;br /&gt;Un tipico algoritmo per trattare i labirinti è l'&lt;i&gt;algoritmo di Tremaux&lt;/i&gt;. Ne esistono anche altri per la robotica, euristici e random (vedi Wikipedia) ma qui è sufficiente quello classico.&lt;br /&gt;&lt;br /&gt;L'algoritmo di Tremaux consiste nel seguire un percorso, scelto a caso all'interno del labirinto, fino a raggiungere un incrocio, marcando la via che è stata percorsa fino a quel momento (nel caso in cui il corridoio conduca a un vicolo cieco è necessario tornare indietro fino all'incrocio precedente, marcando la via all'andata e al ritorno).&lt;br /&gt;&lt;br /&gt;Quando si giunge a un incrocio di più corridoi si prende preferibilmente una via che non è stata segnata come percorsa in precedenza, e se ciò non è possibile si prende una via percorsa una sola volta. In ogni caso non è permesso scegliere una via che è stata già marcata due volte. Iterando il procedimento per ogni incrocio che si trova sul proprio percorso, l'algoritmo permette di raggiungere l'uscita (o se il labirinto non ha altre uscite oltre a quella imboccata per entrare, di tornare all'entrata).&lt;br /&gt;&lt;br /&gt;La "&lt;i&gt;tecnica di backtracking&lt;/i&gt;" è una tecnica euristica generale utilizzabile nei grafi e negli alberi; serve a tracciarsi i percorsi e durante esso appena si ottiene una informazione che il cammino fatto è peggiore di un altro si scarta e si ritorna indietro per un ramo non percorso. Alla fine si rimane col miglior percorso tracciato. &lt;br /&gt;&lt;br /&gt;Se ci riflettiamo, una pianificazione assomiglia un pò all'attraversamento di un &lt;i&gt;labirinto&lt;/i&gt;, dove ci sono un ingresso/inizio ed una uscita/fine, e dove occorre scegliere i percorsi e marcandoli, in che direzione li percorriamo (grafo orientato) e se una o due volte. &lt;br /&gt;&lt;br /&gt;Il percorso o cammino in effetti è l'insieme dei rami/task da scegliere da legare insieme; mentre lungo il ramo del percorso troviamo degli oggetti di un certo peso da mettere in uno zaino, che potrebbero essere anche dei job da fare per ottenere un oggetto finito. &lt;br /&gt;&lt;br /&gt;Mi direte ma nel labirinto non c'è parallelismo ... non è detto: dipende da quante persone lo percorrono contemporaneamente.&lt;br /&gt;&lt;br /&gt;E' come se il problema dello scheduling fosse riconducibile a vari sottoproblemi:&lt;br /&gt;-&lt;i&gt; teoria dei grafi e dei labirinti&lt;/i&gt;&lt;br /&gt;- &lt;i&gt;algoritmi della teoria scheduling&lt;/i&gt;&lt;br /&gt;- il &lt;i&gt;problema dello zaino &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In effetti di un labirinto, almeno inizialmente, nessuno ne conosce i percorsi, così come nelle pianificazioni che occorre studiare bene come ottenere una pianificazione decente e coerente.&lt;br /&gt;&lt;br /&gt;Da quanto detto un labirinto è rappresentabile con un &lt;i&gt;grafo orientato&lt;/i&gt; ed in esso occorre:&lt;br /&gt;- individuare il percorso&lt;br /&gt;- individuare gli elementi secondo una tecnica di backtracking&lt;br /&gt;&lt;br /&gt;In particolare durante l'attraversamento di un labirinto ci si segna i nodi e gli archi orientati e il relativo peso.&lt;br /&gt;&lt;br /&gt;Una volta individuato il labirinto occorre iniziare a vedere quale oggetto/task ooccorre estrarre per arrivare alla successiva lavorazione. Occorre stare attenti a semplificare il problema altrimenti si arriva ad aggiungere molte condizioni e vincoli che aumentano il costo dell'elaborazione. La strategia di scelta degli oggetti/task deve essere, difatti, quella che è in relazione alla sequenza ottima che minimizza il makespan, il peso degli oggetti e i tempi di computazione.&lt;br /&gt;&lt;br /&gt;Non si può usare prima la tecnica dello zaino e poi la tecnica del MST perchè si arriverebbe ad una soluzione non necessariamente la migliore in termini di schedulazione; per cui la soluzione migliore è di fare prima un algoritmo che restittuisca il makespan a cui si applica la tecnica dello zaino.&lt;br /&gt;&lt;br /&gt;Supponiamo che ci siano n task che m macchine possono lavorare in parallelo, col vincolo di preemption, e che un task startato su una macchina può continuare su una macchina differente, a seguito di interruzione sulla macchina precedente. &lt;br /&gt;&lt;br /&gt;Chiamiamo Cmax il tempo massimo di lavorazione in cui le m macchine devono completare gli n task:&lt;br /&gt;&lt;br /&gt;Cmax = max(1&amp;lt;=j&amp;lt;=n) Cj&lt;br /&gt;&lt;br /&gt;Mentre xij= frazione di task j lavorata sulla macchina i, col vincolo che Sum(i=1,m, xji) = 1 (Che esprime che una sola macchina per volta lavora un task: non è consentita la preemption). In particolare xji={0,1}.&lt;br /&gt;&lt;br /&gt;Il tempo totale di lavoro della macchina i è: ki=Sum(j=1,n,pj*xji).&lt;br /&gt;&lt;br /&gt;Riassumendo la formulazione in LP è:&lt;br /&gt;&lt;br /&gt;min Cmax&lt;br /&gt;Sum(j=1,n,pj*xji) &amp;lt;= Cmax&lt;br /&gt;Sum(i=1,m, xij) = 1&lt;br /&gt;xji&amp;gt;=0&lt;br /&gt;&lt;br /&gt;E' vera la seguente affermazione: Sia x* una soluzione che soddisfa tutte le condizioni e vincoli, allora x* è la soluzione ottima.&lt;br /&gt;&lt;br /&gt;Infatti rispetto a x* tutte le macchine hanno lo stesso carico e terminano in Cmax. Se x* non fosse la soluzione ottima e le macchine lavorassero con carico sbilanciato, significa che si potrebbe ridurre lo stesso il makespan ridistribuendo il lavoro sulle varie macchine il carico che era maggiore su una delle macchine. Ma questo ci riporterebbe a dire che x* non era ottimo ma che ne esiste un altro valore ottimo (ma che soprattutto non erano soddisfatte bene tutte le condizioni).&lt;br /&gt;&lt;br /&gt;In particolare Cmax(x*) = 1/m * Sum(j=1,m,pj). Quindi siamo alla ricerca di un vettore x* delle variabili decisionali e una volta trovato x* si può passare a studiare il problema del sacco (knapsack).&lt;br /&gt;&lt;br /&gt;Il problema, come già più volte evidenziato, può essere formulato nel seguente modo. Si hanno a disposizione n oggetti, ciascuno con valore vi e costo ci; nella fattispecie, tali parametri possono essere rivisti come tempo di processamento e peso. In questo caso il problema può essere espresso come massimizzazione del valore, nel rispetto della sequenza makespan e minimizzazione del peso, visto che dovranno essere effettuati diversi viaggi. &lt;br /&gt;&lt;br /&gt;Se C è la disponibilità massima del trasporto, si avrà:&lt;br /&gt;&lt;br /&gt;max F = Sum(i=1,n,vi*xi)&lt;br /&gt;Sum(i=1,n,ci*xi)&amp;lt;=C con xi={0,1}&lt;br /&gt;&lt;br /&gt;La programmazione dinamica si può espletare nel seguente modo:&lt;br /&gt;- determinare il cammino e la lista di oggetti;&lt;br /&gt;- implementare il makespan e determinare la sequenza di schedulazione;&lt;br /&gt;- entrare nel labirinto e con la procedura di knapsack riempire il sacco, uscire ed avviare il processamento; mentre ciò avviene, rientrare nel labirinto e prelevare un altro sottoinsieme di oggetti fintantochè tutti gli oggetti non sono stati rimossi dal labirinto stesso.&lt;br /&gt;&lt;br /&gt;Un'ulteriore complicazione può essere data dall'inserimento nel vincolo di rispetto della sequenza, e che negli intervalli di tempo in cui l'operatore sta asportando gli oggetti dal labirinto, almeno un processamento sia in atto; cioè l'insieme delle macchine non deve mai essere inoperoso. Chiaramente tale fatto complica notevolmente la soluzione del problema.&lt;br /&gt;&lt;br /&gt;Per fissare i concetti di sopra vediamo però un esempio concreto in LP di una pianificazione di task e risorse umane, potrebbe essere anche un orario scolastico ad esempio. &lt;br /&gt;&lt;br /&gt;Si possono risolvere problemi molto complessi (in questi ambiti basta poco per complicarli) e realizzare sistemi con Database Oracle, PL/SQL e con un motore risolutore GPLK. Nel seguito esamineremo un &lt;br /&gt;problemino di schedulazione semplice.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Problemino di schedulazione&lt;/b&gt;&lt;br /&gt;In un impianto di produzione di tutti i giorni un certo numero di personale è necessario. Il personale può essere essere assunto per un minimo fino ad un numero massimo di giorni consecutivi, richiede un numero minimo di giorni di ferie prima di poter essere nuovamente utilizzati. Il compito è di trovare &lt;br /&gt;l'orario di lavoro riducendo al minimo salario totale da pagare.&lt;br /&gt;&lt;br /&gt;Ecco come formuliamo il problemqa in CMLP:&lt;br /&gt;&lt;br /&gt;# Personnel assignment problem&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# workload (day, workload)&lt;br /&gt;set L, dimen 2;&lt;br /&gt;&lt;br /&gt;# workers (name, min workdays, max workdays, minimum leave, wage)&lt;br /&gt;set W, dimen 5;&lt;br /&gt;&lt;br /&gt;# names of workers&lt;br /&gt;set V := setof{(v, b, c, d, e) in W} v;&lt;br /&gt;&lt;br /&gt;# periods&lt;br /&gt;set B := ( (min{(b,c) in L} b) .. (max{(b,c) in L} b) );&lt;br /&gt;&lt;br /&gt;# minimum number of workdays in row&lt;br /&gt;param ri{v in V} := min{(v, b, c, d, e) in W} b;&lt;br /&gt;&lt;br /&gt;# maximum number of workdays in row&lt;br /&gt;param ra{v in V} := min{(v, b, c, d, e) in W} c;&lt;br /&gt;&lt;br /&gt;# minimum leave days in row&lt;br /&gt;param ml{v in V} := min{(v, b, c, d, e) in W} d;&lt;br /&gt;&lt;br /&gt;# wage&lt;br /&gt;param wa{v in V} := min{(v, b, c, d, e) in W} e;&lt;br /&gt;&lt;br /&gt;# work offer [worker, start, duration]&lt;br /&gt;# (for large problems consider column generation to create work offers)&lt;br /&gt;set O := setof{ v in V, s in B, d in {ri[v]..ra[v]}}( v, s, d);&lt;br /&gt;&lt;br /&gt;# workday&lt;br /&gt;param wd{b in B, (v, s, d) in O} := &lt;br /&gt;&amp;nbsp; if b &amp;lt; s then 0 else if b - s &amp;gt; d - 1 then 0 else 1;&lt;br /&gt;&lt;br /&gt;# leaveday&lt;br /&gt;param ld{b in B, (v, s, d) in O} := &lt;br /&gt;&amp;nbsp; if b &amp;lt; s + d then 0 else if b - s &amp;gt; d + ml[v] - 1 then 0 else 1;&lt;br /&gt;&lt;br /&gt;# work offer used&lt;br /&gt;var x{(v,s,d) in O}, binary;&lt;br /&gt;&lt;br /&gt;# minimze total wage&lt;br /&gt;minimize wage :&lt;br /&gt;&amp;nbsp; sum{b in B, (v,s,d) in O} x[v,s,d] * wd[b,v,s,d] * wa[v];&lt;br /&gt;&lt;br /&gt;# worker can do one job only&lt;br /&gt;s.t. j1{b in B, v in V} :&lt;br /&gt;&amp;nbsp; sum{(v,s,d) in O} x[v,s,d] * ( wd[b,v,s,d] + ld[b,v,s,d] ) &amp;lt;= 1;&lt;br /&gt;&lt;br /&gt;# do all jobs&lt;br /&gt;s.t. ja{b in B} :&lt;br /&gt;&amp;nbsp; sum{(v,s,d) in O} x[v,s,d] * wd[b,v,s,d] &amp;gt;= sum{(b, w) in L} w;&lt;br /&gt;&lt;br /&gt;solve;&lt;br /&gt;&lt;br /&gt;# output solution&lt;br /&gt;printf "\n%-10s", "Day";&lt;br /&gt;for {v in V}&lt;br /&gt;&amp;nbsp; printf "| %-10s", v;&lt;br /&gt;printf "\n";&lt;br /&gt;printf "%-10s", '----------';&lt;br /&gt;for {v in V}&lt;br /&gt;&amp;nbsp; printf "+-%-10s", '----------';&lt;br /&gt;printf "\n";&lt;br /&gt;for {b in B}&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; printf "%9i ", b;&lt;br /&gt;&amp;nbsp; for {v in V}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf "| %-9s ", &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if sum{(v,s,d) in O} x[v,s,d] * wd[b,v,s,d] then "working"&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else "on leave";&lt;br /&gt;&amp;nbsp; printf "\n";&lt;br /&gt;}&lt;br /&gt;printf "\n";&lt;br /&gt;&lt;br /&gt;data;&lt;br /&gt;&lt;br /&gt;# workload&lt;br /&gt;set L := # day, workload&lt;br /&gt;&amp;nbsp; ( 1, 3)&lt;br /&gt;&amp;nbsp; ( 2, 1)&lt;br /&gt;&amp;nbsp; ( 3, 1)&lt;br /&gt;&amp;nbsp; ( 4, 1)&lt;br /&gt;&amp;nbsp; ( 5, 1)&lt;br /&gt;&amp;nbsp; ( 6, 2)&lt;br /&gt;&amp;nbsp; ( 7, 2)&lt;br /&gt;&amp;nbsp; ( 8, 2)&lt;br /&gt;&amp;nbsp; ( 9, 3)&lt;br /&gt;&amp;nbsp; (10, 2)&lt;br /&gt;&amp;nbsp; (11, 2)&lt;br /&gt;&amp;nbsp; (12, 2)&lt;br /&gt;&amp;nbsp; (14, 1)&lt;br /&gt;&amp;nbsp; (15, 2)&lt;br /&gt;&amp;nbsp; (17, 3)&lt;br /&gt;&amp;nbsp; (18, 3)&lt;br /&gt;&amp;nbsp; (19, 2)&lt;br /&gt;&amp;nbsp; (21, 3)&lt;br /&gt;&amp;nbsp; (23, 1)&lt;br /&gt;&amp;nbsp; (24, 3)&lt;br /&gt;&amp;nbsp; (25, 3)&lt;br /&gt;&amp;nbsp; (26, 3)&lt;br /&gt;&amp;nbsp; (27, 2)&lt;br /&gt;&amp;nbsp; (28, 1)&lt;br /&gt;&amp;nbsp; (29, 1)&lt;br /&gt;&amp;nbsp; (30, 2)&lt;br /&gt;&amp;nbsp; (31, 1)&lt;br /&gt;&amp;nbsp; (32, 3)&lt;br /&gt;&amp;nbsp; (33, 2)&lt;br /&gt;&amp;nbsp; (35, 3)&lt;br /&gt;&amp;nbsp; (36, 3)&lt;br /&gt;&amp;nbsp; (37, 1)&lt;br /&gt;&amp;nbsp; (38, 3)&lt;br /&gt;&amp;nbsp; (39, 2)&lt;br /&gt;&amp;nbsp; (40, 3)&lt;br /&gt;&amp;nbsp; (43, 1)&lt;br /&gt;&amp;nbsp; (44, 1)&lt;br /&gt;&amp;nbsp; (45, 2)&lt;br /&gt;&amp;nbsp; (46, 2)&lt;br /&gt;&amp;nbsp; (47, 3)&lt;br /&gt;&amp;nbsp; (48, 2)&lt;br /&gt;&amp;nbsp; (49, 1)&lt;br /&gt;&amp;nbsp; (50, 2);&lt;br /&gt;&lt;br /&gt;# workers&lt;br /&gt;set W := # name, min workdays, max workdays, minimum leave, wage&lt;br /&gt;&amp;nbsp; ( 'Anna',&amp;nbsp;&amp;nbsp; 5, 8, 2,&amp;nbsp; 470 )&lt;br /&gt;&amp;nbsp; ( 'Isabel', 5, 8, 2,&amp;nbsp; 500 )&lt;br /&gt;&amp;nbsp; ( 'Jack',&amp;nbsp;&amp;nbsp; 1, 8, 2, 1000 )&lt;br /&gt;&amp;nbsp; ( 'John',&amp;nbsp;&amp;nbsp; 5, 8, 2,&amp;nbsp; 600 )&lt;br /&gt;&amp;nbsp; ( 'Lisa',&amp;nbsp;&amp;nbsp; 3, 5, 3,&amp;nbsp; 640 );&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;Ora eseguiamo il file scritto.&lt;br /&gt;&lt;br /&gt;K:\Work\LP&amp;gt;glpsol --model workload.txt&lt;br /&gt;Reading model section from workload.txt...&lt;br /&gt;Reading data section from workload.txt...&lt;br /&gt;147 lines were read&lt;br /&gt;Generating wage...&lt;br /&gt;Generating j1...&lt;br /&gt;Generating ja...&lt;br /&gt;Model has been successfully generated&lt;br /&gt;ipp_basic_tech:&amp;nbsp; 8 row(s) and 8 column(s) removed&lt;br /&gt;ipp_reduce_bnds: 1 pass(es) made, 0 bound(s) reduced&lt;br /&gt;ipp_basic_tech:&amp;nbsp; 0 row(s) and 0 column(s) removed&lt;br /&gt;ipp_reduce_coef: 1 pass(es) made, 0 coefficient(s) reduced&lt;br /&gt;glp_intopt: presolved MIP has 293 rows, 1142 columns, 13200 non-zeros&lt;br /&gt;glp_intopt: 1142 integer columns, all of which are binary&lt;br /&gt;Scaling...&lt;br /&gt;&amp;nbsp;A: min|aij| = 1.000e+000&amp;nbsp; max|aij| = 1.000e+000&amp;nbsp; ratio = 1.000e+000&lt;br /&gt;Problem data seem to be well scaled&lt;br /&gt;Crashing...&lt;br /&gt;Size of triangular part = 293&lt;br /&gt;Solving LP relaxation...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: obj =&amp;nbsp; 0.000000000e+000&amp;nbsp; infeas = 8.700e+001 (0)&lt;br /&gt;*&amp;nbsp;&amp;nbsp; 100: obj =&amp;nbsp; 8.699000000e+004&amp;nbsp; infeas = 0.000e+000 (0)&lt;br /&gt;*&amp;nbsp;&amp;nbsp; 200: obj =&amp;nbsp; 5.981000000e+004&amp;nbsp; infeas = 6.106e-016 (0)&lt;br /&gt;*&amp;nbsp;&amp;nbsp; 338: obj =&amp;nbsp; 5.253000000e+004&amp;nbsp; infeas = 0.000e+000 (0)&lt;br /&gt;OPTIMAL SOLUTION FOUND&lt;br /&gt;Integer optimization begins...&lt;br /&gt;+&amp;nbsp;&amp;nbsp; 338: mip =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; not found yet &amp;gt;=&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -inf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp; 361: &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp; 5.263000000e+004 &amp;gt;=&amp;nbsp; 5.254000000e+004&amp;nbsp;&amp;nbsp; 0.2% (3; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp; 371: mip =&amp;nbsp; 5.263000000e+004 &amp;gt;=&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tree is empty&amp;nbsp;&amp;nbsp; 0.0% (0; 5)&lt;br /&gt;INTEGER OPTIMAL SOLUTION FOUND&lt;br /&gt;Time used:&amp;nbsp;&amp;nbsp; 0.2 secs&lt;br /&gt;Memory used: 20.6 Mb (21554667 bytes)&lt;br /&gt;&lt;br /&gt;Day&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Anna&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Isabel&amp;nbsp;&amp;nbsp;&amp;nbsp; | Jack&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | John&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Lisa&lt;br /&gt;----------+-----------+-----------+-----------+-----------+-----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13 | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 18 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 19 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 21 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 23 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 26 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 27 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 28 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 29 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31 | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 32 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 33 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 34 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 36 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 37 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 38 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 39 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 41 | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 42 | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 44 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 45 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 46 | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 47 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | working&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48 | working&amp;nbsp;&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 49 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | on leave&amp;nbsp; | on leave&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50 | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&amp;nbsp; | working&amp;nbsp;&amp;nbsp; | on leave&lt;br /&gt;&lt;br /&gt;Model has been successfully processed&lt;br /&gt;&lt;br /&gt;Un consiglio. E' ovvio che lo strumento vi calcola il tutto in base ai dati che gli avete fornito e funziona benissimo quando la durata del tempo è ben fissata da regole, come nell'organizzazione di orari, turni etc.&lt;br /&gt;&lt;br /&gt;Mentre nelle pianificazioni di lavori come realizzazione di un software,&amp;nbsp; molto della pianificazione dipende da voi nel saper ben valutare il tempo, le persone disponibili e l'organizzazione e professionalità necessarie per svolgere un task, etc. Per questo vi affiderete a statistiche che avete raccolto nel tempo nell'effettuare quel lavoro o a metodologie specifiche o a regolamentazioni previste per quel lavoro.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-3761769715598198064?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/3761769715598198064/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/schedulazioni-vincenti-e-labirinti.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3761769715598198064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3761769715598198064'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/schedulazioni-vincenti-e-labirinti.html' title='Schedulazioni vincenti e labirinti tenebrosi, con il bastone da maresciallo nello zaino ...'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8540387467523593060</id><published>2010-09-21T14:07:00.000-07:00</published><updated>2010-09-21T14:07:52.693-07:00</updated><title type='text'>Un sacco di mal di testa: Il problema dello zaino (Knapsack)</title><content type='html'>Il problema dello zaino è uno dei “21 problemi NP-completi della lista di Karp”. Esso si può formulare nel seguente modo: sia N, il numero totale di oggetti xi, sia wi il peso del singolo oggetto xi, ci il valore del singolo oggetto xi e W il peso totale sopportabile dallo zaino.&lt;br /&gt;&lt;br /&gt;La funzione obiettivo da massimizzare è in tal caso, considerando xi=1 se si inserisce nello zaino o 0 in caso&lt;br /&gt;contrario:&amp;nbsp; maxZ=Sum{i=1..N}c_{i}*x_{i} mentre il vincolo impone che:sum_{i=1..N} x_{i}*w_{i} &amp;lt;= W &lt;br /&gt;&lt;br /&gt;In sostanza maxZ è il massimo valore ottenibile come oggetti che posso mettere nello zaino, non necessariamente N, ma nello stesso tempo il massimo numero di oggetti è limitato dal massimo peso trasportabile.&lt;br /&gt;&lt;br /&gt;Ovviamente il problema dello zaino è isomorfo ad altri problemi simili, anzicchè dello zaino potrebbe essere la stiva di un aereo, o di una barca etc. e il valore ed il peso possono avere un differente significato, ma trattabile allo stesso modo matematicamente.&lt;br /&gt;&lt;br /&gt;A seconda dei valori assunti da xi il problema è classificato in modalità diversa. Se xi={0,1} allora si definisce&lt;br /&gt;“problema dello zaino binario o 0-1”; se xi &amp;lt;= bi si definisce “problema dello zaino con limiti” ed infine se &lt;br /&gt;xi appartiene a N e per ogni i appartenente a N con i&amp;gt;0 allora si parla di “problema dello zaino senza limiti”.&lt;br /&gt;&lt;br /&gt;Esso è risolvibile attraverso una “programmazione dinamica”, termine non finalizzato ad un fine informatico, ma entrato in uso negli anni Quaranta ad indicare la suddivisione in sottoproblemi e strutture ottimali. Sulla strada del “Subset-sum” furno ideate anche tecniche crittografiche a chiave pubblica, come quella Markle-Hellman successivamente abbandonata poichè facilmente risolvibile con algoritmi lineari. &lt;br /&gt;&lt;br /&gt;Facciamo un esempio, Nella tabella successiva abbiamo 9 possibili oggetti, con peso e valore, che potremmo mettere nello zaino tenendo presente che il massimo peso trasportabile è W=27Kg :&lt;br /&gt;&lt;br /&gt;Oggetto&amp;nbsp;&amp;nbsp;&amp;nbsp; Peso (kg)&amp;nbsp;&amp;nbsp;&amp;nbsp; Valore (euro)&amp;nbsp;&amp;nbsp;&amp;nbsp; Valore/Peso&lt;br /&gt;x1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;br /&gt;x2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 225&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 18,75&lt;br /&gt;x3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 250&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16,67&lt;br /&gt;x4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 150&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16,67&lt;br /&gt;x5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 125&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17,86&lt;br /&gt;x6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 125&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20,83&lt;br /&gt;x7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;br /&gt;x8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;br /&gt;x9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 75&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 18,75&lt;br /&gt;&lt;br /&gt;Esistono varie strategie algoritmiche euristiche e di rilassamento che per la sua soluzione non richiede molto tempo, ad esempio con tecnica “Branch e bound” in ambito della Linear Programming e dovuto a A.H. Land e A.G.Doig nel 1960. Tale tecnica è una enumerazione implicita cioè prova a enumerare tutte le possibilità, individuando quella ottima o quella possibile, scartando le altre.&lt;br /&gt;&lt;br /&gt;L'algoritmo Greedy di tipo euristico è dovuto, invece, a Martello e Toth (1990). Esso ordina gli oggetti in ordine decrescente di peso, per inserirli nello zaino fino all'esaurimento dello spazio disponibile. Se k è il massimo numero di oggetti che possono essere inseriti nello zaino, l'algoritmo Greedy garantisce che ne siano inseriti nello zaino almeno k/2.&lt;br /&gt;&lt;br /&gt;Sono possibili molte variazioni di questo algoritmo, la più efficiente prevede di ordinare gli elementi in base al loro costo unitario, vale a dire ci/wi ed inserirli in ordine decrescente (euristica CUD). Questi algoritmi essendo euristici non garantiscono l'ottimalità della soluzione ma sono in grado di fornire una "buona" soluzione in tempo ragionevole. Possiamo usare GnuWin32 (gplsol), scrivendo un file in formato GMPL oppure LP; ma se volessimo adottare strategie senza “aiuti software” potremmo avere diverse soluzioni (esaminiamo il problema dello zaino binario):&lt;br /&gt;&lt;br /&gt;• Soluzione 1: prendo gli oggetti più pesanti che non superano i 27 kg: ad esempio x2+x3 che mi danno 27 kg ed un valore di 475 euro&lt;br /&gt;&lt;br /&gt;• Soluzione 2: prendo gli oggetti più leggeri per aumentarne il numero ad esempio x6+x7+x8+x9 in questo caso si ottiene 22Kg ed un valore di 530 euro (meno peso e maggior valore).&lt;br /&gt;&lt;br /&gt;• Soluzione 3: prendo gli oggetti di maggiore valore in base al rapporto valore/peso x1+x6+x7+x9 ovvero 26kg e 520 euro&lt;br /&gt;&lt;br /&gt;• Soluzione 4: raggiungo i 27 kg con gli oggetti di maggiore valore x1+x5+x6+x9 ovvero 27Kg e 525 euro&lt;br /&gt;&lt;br /&gt;La soluzione 4, come si vede, massimizza la funzione del valore. In questo caso erano poche le variabili in gioco ma se fossero state molte sarebbe stato necessario l'”aiuto software”.&lt;br /&gt;&lt;br /&gt;OK, vi do la formulazione del problema di sopra in formato GMPL da risolvere con GLPSOL.&lt;br /&gt;&lt;br /&gt;Eccola:&lt;br /&gt;&lt;br /&gt;# This file shows how to model a knapsack problem in GMPL.&lt;br /&gt;&lt;br /&gt;# Size of knapsack&lt;br /&gt;param c;&lt;br /&gt;&lt;br /&gt;# Items: index, size, profit&lt;br /&gt;set I, dimen 3;&lt;br /&gt;&lt;br /&gt;# Indices&lt;br /&gt;set J := setof{(i,s,p) in I} i;&lt;br /&gt;&lt;br /&gt;# Assignment&lt;br /&gt;var a{J}, binary;&lt;br /&gt;&lt;br /&gt;maximize obj :&lt;br /&gt;&amp;nbsp; sum{(i,s,p) in I} p*a[i];&lt;br /&gt;&lt;br /&gt;s.t. size :&lt;br /&gt;&amp;nbsp; sum{(i,s,p) in I} s*a[i] &amp;lt;= c;&lt;br /&gt;&lt;br /&gt;solve;&lt;br /&gt;&lt;br /&gt;printf "The knapsack contains:\n";&lt;br /&gt;printf {(i,s,p) in I: a[i] == 1} " %i", i;&lt;br /&gt;printf "\n";&lt;br /&gt;&lt;br /&gt;data;&lt;br /&gt;&lt;br /&gt;# Size of the knapsack&lt;br /&gt;param c := 27;&lt;br /&gt;&lt;br /&gt;# Items: index, size, profit&lt;br /&gt;set I :=&lt;br /&gt;&amp;nbsp; 1 10 200&lt;br /&gt;&amp;nbsp; 2 12 225&lt;br /&gt;&amp;nbsp; 3 15 250&lt;br /&gt;&amp;nbsp; 4&amp;nbsp; 9 150&lt;br /&gt;&amp;nbsp; 5&amp;nbsp; 7 125&lt;br /&gt;&amp;nbsp; 6&amp;nbsp; 6 125&lt;br /&gt;&amp;nbsp; 7&amp;nbsp; 6 120&lt;br /&gt;&amp;nbsp; 8&amp;nbsp; 6 120&lt;br /&gt;&amp;nbsp; 9&amp;nbsp; 4&amp;nbsp; 75;&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;Ora che avete il file knapsack.txt lanciate il comando:&lt;br /&gt;&lt;br /&gt;glpsol --model knapsack.txt&lt;br /&gt;&lt;br /&gt;e otterrete l'output:&lt;br /&gt;&lt;br /&gt;K:\Work\LP&amp;gt;glpsol --model knapsack.txt&lt;br /&gt;Reading model section from knapsack.txt...&lt;br /&gt;Reading data section from knapsack.txt...&lt;br /&gt;44 lines were read&lt;br /&gt;Generating obj...&lt;br /&gt;Generating size...&lt;br /&gt;Model has been successfully generated&lt;br /&gt;ipp_basic_tech:&amp;nbsp; 1 row(s) and 0 column(s) removed&lt;br /&gt;ipp_reduce_bnds: 1 pass(es) made, 0 bound(s) reduced&lt;br /&gt;ipp_basic_tech:&amp;nbsp; 0 row(s) and 0 column(s) removed&lt;br /&gt;ipp_reduce_coef: 1 pass(es) made, 0 coefficient(s) reduced&lt;br /&gt;glp_intopt: presolved MIP has 1 row, 9 columns, 9 non-zeros&lt;br /&gt;glp_intopt: 9 integer columns, all of which are binary&lt;br /&gt;Scaling...&lt;br /&gt;&amp;nbsp;A: min|aij| = 4.000e+000&amp;nbsp; max|aij| = 1.500e+001&amp;nbsp; ratio = 3.750e+000&lt;br /&gt;GM: min|aij| = 1.000e+000&amp;nbsp; max|aij| = 1.000e+000&amp;nbsp; ratio = 1.000e+000&lt;br /&gt;EQ: min|aij| = 1.000e+000&amp;nbsp; max|aij| = 1.000e+000&amp;nbsp; ratio = 1.000e+000&lt;br /&gt;2N: min|aij| = 7.500e-001&amp;nbsp; max|aij| = 1.250e+000&amp;nbsp; ratio = 1.667e+000&lt;br /&gt;Crashing...&lt;br /&gt;Size of triangular part = 1&lt;br /&gt;Solving LP relaxation...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: obj =&amp;nbsp; 5.400000000e+002&amp;nbsp; infeas = 1.360e+001 (0)&lt;br /&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2: obj =&amp;nbsp; 3.500000000e+002&amp;nbsp; infeas = 0.000e+000 (0)&lt;br /&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8: obj =&amp;nbsp; 5.450000000e+002&amp;nbsp; infeas = 0.000e+000 (0)&lt;br /&gt;OPTIMAL SOLUTION FOUND&lt;br /&gt;Integer optimization begins...&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8: mip =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; not found yet &amp;lt;=&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +inf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; 15: &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp; 5.150000000e+002 &amp;lt;=&amp;nbsp; 5.350000000e+002&amp;nbsp;&amp;nbsp; 3.9% (4; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; 25: &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp; 5.200000000e+002 &amp;lt;=&amp;nbsp; 5.350000000e+002&amp;nbsp;&amp;nbsp; 2.9% (6; 4)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; 29: &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp; 5.250000000e+002 &amp;lt;=&amp;nbsp; 5.250000000e+002&amp;nbsp;&amp;nbsp; 0.0% (1; 11)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; 29: mip =&amp;nbsp; 5.250000000e+002 &amp;lt;=&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tree is empty&amp;nbsp;&amp;nbsp; 0.0% (0; 17)&lt;br /&gt;INTEGER OPTIMAL SOLUTION FOUND&lt;br /&gt;Time used:&amp;nbsp;&amp;nbsp; 0.1 secs&lt;br /&gt;Memory used: 0.1 Mb (155039 bytes)&lt;br /&gt;&lt;b style="color: red;"&gt;The knapsack contains:&lt;br /&gt;&amp;nbsp;1 5 6 9&lt;/b&gt;&lt;br /&gt;Model has been successfully processed&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8540387467523593060?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8540387467523593060/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/un-sacco-di-mal-di-testa-il-problema.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8540387467523593060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8540387467523593060'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/un-sacco-di-mal-di-testa-il-problema.html' title='Un sacco di mal di testa: Il problema dello zaino (Knapsack)'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-5879132521625300644</id><published>2010-09-16T11:16:00.000-07:00</published><updated>2010-09-21T11:43:15.457-07:00</updated><title type='text'>Problemi matematici minori ?</title><content type='html'>&lt;div style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;In Matematica esistono innumerevoli problemi, apparentemente minori, nel senso che non sono direttamente classificati tra i "problemi del Millennio"; ma che tuttavia se risolti avrebbero un impatto tecnologico notevole nella vita odierna.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Soprattutto permetterebbero pianificazioni ed uso di risorse in modo mirato e a minor costo.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Non solo ma risolvendo un problema, si risolverebbero problemi "isomorfi in altri contesti".&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" style="color: black;"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" style="color: black;"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" style="color: black;"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:1;	mso-generic-font-family:roman;	mso-font-format:other;	mso-font-pitch:variable;	mso-font-signature:0 0 0 0 0 0;}@font-face	{font-family:Calibri;	panose-1:2 15 5 2 2 2 4 3 2 4;	mso-font-charset:0;	mso-generic-font-family:swiss;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;}span.StileMessaggioDiPostaElettronica15	{mso-style-type:personal;	mso-style-noshow:yes;	mso-style-unhide:no;	mso-ansi-font-size:11.0pt;	mso-bidi-font-size:11.0pt;	font-family:"Calibri","sans-serif";	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:"Times New Roman";	mso-bidi-theme-font:minor-bidi;	color:#1F497D;	mso-themecolor:dark2;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	mso-ascii-font-family:Calibri;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:Calibri;	mso-fareast-theme-font:minor-latin;	mso-hansi-font-family:Calibri;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:"Times New Roman";	mso-bidi-theme-font:minor-bidi;	mso-fareast-language:EN-US;}@page WordSection1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.WordSection1	{page:WordSection1;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;Per farvi comprendere di che si tratta pensate a: traffico aereo, percorsi idrici, gas, fognature in una città, distensione dei cavi e delle fibre ottiche, creazione di circuiti integrati con aggiunta di nuovi nodi o vertici, ma anche nelle trasmissioni &lt;/span&gt;&lt;span style="font-size: small;"&gt;audio, video, etc.&lt;/span&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Avete mai fatto delle audio col numero verde 800 dove si collegano e si scollegano varie persone? Ebbene un sistema efficiente deve ricalcolare ogni volta l'albero di Steiner più efficace per poter riequilibrare QoS (Quality of Service) e percorsi di minor costo o banda.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;In poche parole si tratta del “&lt;i&gt;problema di Steiner&lt;/i&gt;”. &lt;o:p&gt;&lt;/o:p&gt;Per introdurvi al problema immaginate di avere un grafo G di cui inizialmente avete solo i nodi (i vertici) V e volete creare un albero (albero di Steiner) col numero minimo di collegamenti pesati.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Chiariamo subito che &amp;nbsp;per “pesati” occorre immaginare un costo che può essere, ad esempio, in un’audio telefonica il tempo di trasmissione o di ritardo e la qualità del segnale QoS; mentre per albero intendiamo dei collegamenti senza percorsi chiusi (no ad anelli o a circuiti). Ad esempio con quattro vertici colleghiamo solo 3 lati di un quadrato (l'ultimo lato non lo disegniamo).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;Se il grafo fosse statico cioè con vertici fissi, l’&lt;i&gt;algoritmo ottimizzato di Kruskal&lt;/i&gt; risolverebbe benissimo la cosa; ma se c’è una dinamicità nel tempo dei vertici n=|V|, allora la cosa si complica di parecchio (anche se è risolvibile ma non in maniera ottimale assoluta).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;La tecnica dell'algoritmo di Kruskal con vertici statici è semplice. Immaginiamo di avere di ogni coppia di vertici il costo e ordiniamoli dal costo più basso al costo più alto. A questo punto colleghiamo (senza creare percorsi chiusi altrimenti non avremo un albero) i nodi a costo minore, via via arrivando a quelli di costo maggiore e ci arrestiamo se abbiamo collegato già tutti i vertici statici.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Siamo, quindi, nella teoria dei grafi, quella iniziata nel Settecento con Eulero e il problema dei ponti di Konigsberg. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;Nel problema di Steiner l'obiettivo è di cercare, ad ogni variazione del numero di vertici(aggiunta o rimozione) , l’albero dei collegamenti minimi che ottimizza le risorse (i costi) che variano nel tempo.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Pensate alla banda di trasmissione e il QoS che deve essere rispettato all'aumentare dei nodi che si collegano o alla variazione delle località dei nodi. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;E’ dimostrato che il problema di Steiner è &lt;i&gt;NP-completo&lt;/i&gt;; per cui il problema di Steiner rientra 'indirettamente' nel "problema del millennio P=NP".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;A questa famiglia ne appartengono molti : il problema dello zaino o sacco da viaggio, del commesso viaggiatore, il problema di Steiner, il problemino dell'individuare il maggior numero di mopnetine di ogni taglio disponibile per pagare un conto, la fattorizzazione del RSA, il logaritmo discreto etc.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;Come tutti i problemi NP-completi,&amp;nbsp; non riuscendo a trovare un algoritmo deterministico polinomiale si cerca di trovare almeno non l’ "ottimo in assoluto" ma il "miglior ottimo disponibile" con tecniche euristiche o altre. &lt;/span&gt;&lt;span style="font-size: small;"&gt;Il che non significa che non esiste una soluzione, anzi la soluzione esiste ma è di tipo esponenziale rispetto ai dati di input e, quindi, poco efficiente.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;Sono nati,a tal proposito, molto algoritmi a risoluzione del problema; ad esempio troviamo tra:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Algoritmi ottimi&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Spanning Tree Enumeration Algorithm (STEA) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Dynamic Programming Algorithm (DPA) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Euristiche per il problema di Steiner &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span lang="EN-US"&gt;Pruned Dijkstra Heuristic (PDH) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span lang="EN-US"&gt;Distance Network Heuristic (DNH) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span lang="EN-US"&gt;Shortest Path Heuristic (SPH) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span lang="EN-US"&gt;Kruskal based – Shortest Path Heuristic (K-SPH) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span lang="EN-US"&gt;Repetitive Shortest Path Heuristics &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span lang="EN-US"&gt;Average Distance Heuristic (ADH) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Tecniche di Post-processing&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;o:p&gt;Ma esistono anche tanti altri SAT, 3SAT etc.&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Come in tutte le discipline ingegneristiche, dove non esiste una soluzione ottima assoluta, allora ognuno degli algoritmi trovati è forte in un "certo range di quantità", per cui anche quelli di cui parlavo prima hanno una efficienza che li avvantaggia o li svantaggia all’aumentare del numero di vertici&lt;o:p&gt;&lt;/o:p&gt;. Spesso un software di gestione delle risorse dispone più algoritmi, che sceglie in base alla quantità di vertici in cui si ritrova.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;OK, starete già su &lt;i&gt;Wikipedia&lt;/i&gt; a vedere la corretta definizione del problema. Bravi! Si inizia da lì, altrimenti vi ritrovereste a risolvere un problema mal definito e vi illudereste di aver trovato la soluzione!&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Esistono anche varie versioni del problema di Steiner:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;problema di Steiner nelle reti (la versione generale che interessa)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;problema di Steiner rettilineo: la topologia è data dal piano R^2 con la metrica indotta dalla '&lt;i&gt;distanza Manhattan&lt;/i&gt;';&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;problema di Steiner euclideo: anche in questo caso la topologia è data dal piano R^2, con la metrica indotta dalla distanza euclidea;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;Il problema che interessa dovrebbe esser formulato come segue: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;"Data una rete connessa e non diretta G = (V, E, w), w : E -&amp;gt; R, e un insieme Z sottoinsieme di V,trovare il sottografo connesso Gs = (Vs, Es, w) di G tale che:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;a) Z sottoinsieme di Vs (strettamente incluso o incluso in Vs);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;b) w(Gs) = Sum(i,j,w(i,j)) sia minimo con i,j appartenenti a Es".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;L’insieme Z è detto, con riferimento al problema trattato, '&lt;i&gt;insieme di multicast&lt;/i&gt;'; mentre l’insieme Vs – Z viene denotato con S ed è costituito dai '&lt;i&gt;nodi di Steiner&lt;/i&gt;'.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Se la funzione di costo w(i, j) degli archi assume sempre valori positivi il sottografo soluzione è un albero, detto 'albero di Steiner', che verrà indicato nel seguito con Tz. Si pone inoltre n = |V|, m = |E|, p = |Z|, s = |S|.Alcuni casi limite del problema di Steiner però ricadono in problemi ben noti della teoria dei grafi:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;p = 2: si tratta di trovare il percorso più breve che connetta i due nodi dell’insieme Z; il problema viene risolto dall’&lt;i&gt;algoritmo di Dijkstra&lt;/i&gt;, che restituisce un albero di cammini minimi da un nodo verso tutti gli altri nodi della rete;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;p = n, cioè Z = V: si tratta di calcolare il &lt;i&gt;minimum spanning tree&lt;/i&gt; o MST del grafo dato;in questo caso il problema viene risolto dall’&lt;i&gt;algoritmo di Prim&lt;/i&gt; o dalla &lt;i&gt;variante di Kruskal&lt;/i&gt;. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;La valutazione della qualità degli algoritmi di questo genere di solito avviene su due fattori di merito:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;la &lt;i&gt;competitività di costo&lt;/i&gt;, intesa come bontà della soluzione trovata Th (l'albero di STeiner trovato) rispetto a quella ottima Tz e in formule :&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ch = w(Th)/w(Tz)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;la &lt;i&gt;complessità computazionale&lt;/i&gt;, in notazione O(f(n))&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Molti altri problemi sono importanti per l'industria alimentare come quello dell'impacchettamento (pensate al problema dell'impacchettamento delle sfere di Keplero) o della realizzazione di scatole al minor costo e con determinate qualità. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Pensate alle buste del latte o ai nuovi contenitori ideati i cosiddetti 'tetrapack' o anche a mobili in alluminio/acciao o a macchine per catene di montaggio; ma ne parleremo la prossima volta. Aggiungo solo una nota di colore: Steiner era svizzero e la sua cultura era autodidatta. Imparò a leggere e scrivere a 14 anni e si dimostrò un genio matematico tale da insegnare a 20 anni.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Ma soprattutto era uno genio della geometria: molti teoremi li dimostrava visivamente, grazie alla geometria, come la dimostrazione del "&lt;i&gt;problema di Didone&lt;/i&gt;" e del "&lt;i&gt;problema isoperimetrico&lt;/i&gt;". &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-5879132521625300644?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/5879132521625300644/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/problemi-matematici-minori.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5879132521625300644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5879132521625300644'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/problemi-matematici-minori.html' title='Problemi matematici minori ?'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-6684331106688343677</id><published>2010-09-12T02:42:00.000-07:00</published><updated>2010-09-21T13:31:53.619-07:00</updated><title type='text'>Programmazione lineare</title><content type='html'>Esiste una categoria di problemi di matematica che rientrano nella Linear Programming (LP) o anche programmi interi misti (MIPS). In questi problemi l'obiettivo è di massimizzare o minimizzare una risorsa (funzione obiettivo), che è soggetta a dei vincoli.&lt;br /&gt;&lt;br /&gt;Con queste tecniche si possono risolvere problemi come quello del commesso viaggiatore, il SUDOKU, tecniche bancarie etc.&lt;br /&gt;&lt;br /&gt;Molti di questi problemi possono risolversi sia graficamente che con strumenti di calcolo usando, nel caso LP, il metodo del simplex (vedi Wikipedia), del punto intermedio (primal-dual interior point); mentre nel caso MIPS tecniche come "Branch and bound".&lt;br /&gt;&lt;br /&gt;Spesso un problema di massimizzazione è anche affrontabile come una minimizzazione al contrario. &lt;br /&gt;&lt;br /&gt;La tecnica grafica, che deve essere altrettanto dominata, va bene se il problema ha poche dimensioni in gioco; appena il numero di dimensioni diventano moltissime, serve uno strumento automatico che risolvi il problema.&lt;br /&gt;&lt;br /&gt;Molti di questi problemi sono isomorfi, nel senso che capito come si risolve uno di essi, tutti gli altri problemi, anche se con descrizione diversa, possono essere ricondotti ad una tale tecnica.&lt;br /&gt;&lt;br /&gt;Un sito proposto per gli approfondimenti è &lt;a href="http://www.sce.carleton.ca/faculty/chinneck/StudentOR.html"&gt;http://www.sce.carleton.ca/faculty/chinneck/StudentOR.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Esempio&lt;br /&gt;Supponiamo che la Fargo è una società che produce barattoli di pittura bianca, gialla, nera e rossa. Per &lt;br /&gt;fare queste pitture la Fargo usa tre materiali grezzi: 40 litri di olio, 25 litri di solvente e 20 litri di pigmenti.&lt;br /&gt;&lt;br /&gt;Per fare il bianco si spendono 12 euro, con 0.8 litri di pigmento, 0.4 di solvente e 0.5 di olio.&lt;br /&gt;Per fare il giallo si spendono 8 euro, con 0.5 litri di pigmento, 0.2 di solvente e 0.7 di olio.&lt;br /&gt;Per fare il nero si spendono 9 euro, con 0.2 litri di pigmento, 0.5 litri di solvente, 0.6 di olio.&lt;br /&gt;Per fare il rosso si spendono 11 euro, con 0.3 litri di pigmento, 0.6 litri di solvente e 0.4 litri di olio.&lt;br /&gt;&lt;br /&gt;L'obiettivo è di massimizzare il profitto della Fargo. &lt;br /&gt;&lt;br /&gt;Si possono usare molti strumenti: alcuni professionali (LINDO etc) ed altri open source (GNUWin32 con GLPSOL). Noi useremo GNUWin32 nel seguito per l'esempio didattico (http://www.gnu.org/software/glpk).&lt;br /&gt;&lt;br /&gt;Installiamo GNUWin32 e inseriamo nel PATH di windows il percorso fino alla directory bin.&lt;br /&gt;&lt;br /&gt;Il primo passo è formalizzare il problema. Esistono molti formati per farlo (GMPL, LP etc).&lt;br /&gt;&lt;br /&gt;Nel seguito useremo il formato più intuitivo LP per la formalizzazione algebrica, poi successivamente quello GMPL.&lt;br /&gt;&lt;br /&gt;Scriviamo con Notepad un file Fargo.txt del tipo:&lt;br /&gt;&lt;br /&gt;\\ Problem Fargo.txt - LP format&lt;br /&gt;&lt;br /&gt;Maximize &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj: 12 x1 + 8 x2 + 9 x3 + 11 x4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Subject to&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c1:&amp;nbsp;&amp;nbsp;&amp;nbsp; .8 x1 + .5 x2 + .2 x3 + .3 x4 &amp;lt;= 20&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c2:&amp;nbsp;&amp;nbsp;&amp;nbsp; .4 x1 + .2 x2 + .5 x3 + .6 x4 &amp;lt;= 25&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c3:&amp;nbsp;&amp;nbsp;&amp;nbsp; .5 x1 + .7 x2 + .6 x3 + .4 x4 &amp;lt;= 40&lt;br /&gt;End&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Da DOS sotto Windows (comando cmd) ci posizioniamo nella directory del file Fargo.txt.&lt;br /&gt;&lt;br /&gt;Proviamo prima l'help per vedere se l'installazione funziona:&amp;nbsp; glpsol --help&lt;br /&gt;&lt;br /&gt;Adesso dobbiamo istruire GLPSOL che abbiamo un file in formato LP:&lt;br /&gt;glpsol --cpxlp fargo.txt --output fargo.out&lt;br /&gt;&lt;br /&gt;e otterrete la soluzione a video e sul file di output fargo.out. Se c'è la scritta OPTIMAL SOLUTIONS FOUND, significa che ha trovato anche la soluzione ottimale.&lt;br /&gt;&lt;br /&gt;L'output si presenta come segue&lt;br /&gt;Problem:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Rows:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;br /&gt;Columns:&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;br /&gt;Non-zeros:&amp;nbsp; 12&lt;br /&gt;Status:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPTIMAL&lt;br /&gt;Objective:&amp;nbsp; obj = 553.7037037 (MAXimum)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; No.&amp;nbsp;&amp;nbsp; Row name&amp;nbsp;&amp;nbsp; St&amp;nbsp;&amp;nbsp; Activity&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lower bound&amp;nbsp;&amp;nbsp; Upper bound&amp;nbsp;&amp;nbsp;&amp;nbsp; Marginal&lt;br /&gt;------ ------------ -- ------------- ------------- ------------- -------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 c1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.25926&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 c2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12.963&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 c3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.11111&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; No. Column name&amp;nbsp; St&amp;nbsp;&amp;nbsp; Activity&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lower bound&amp;nbsp;&amp;nbsp; Upper bound&amp;nbsp;&amp;nbsp;&amp;nbsp; Marginal&lt;br /&gt;------ ------------ -- ------------- ------------- ------------- -------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 x1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -1.14815&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 x2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 23.4568&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 x3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 37.6543&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 x4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.46914&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Karush-Kuhn-Tucker optimality conditions:&lt;br /&gt;&lt;br /&gt;KKT.PE: max.abs.err. = 1.48e-015 on row 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max.rel.err. = 5.68e-017 on row 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; High quality&lt;br /&gt;&lt;br /&gt;KKT.PB: max.abs.err. = 0.00e+000 on row 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max.rel.err. = 0.00e+000 on row 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; High quality&lt;br /&gt;&lt;br /&gt;KKT.DE: max.abs.err. = 8.68e-016 on column 4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max.rel.err. = 7.24e-017 on column 4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; High quality&lt;br /&gt;&lt;br /&gt;KKT.DB: max.abs.err. = 0.00e+000 on row 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max.rel.err. = 0.00e+000 on row 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; High quality&lt;br /&gt;&lt;br /&gt;End of output&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Potreste usare anche le opzioni:&lt;br /&gt;glpsol --cpxlp fargo.txt --output fargo.out --bound fargo.bnd&lt;br /&gt;&lt;br /&gt;In questo modo otterrete anche un file di spiegazione. Il vantaggio di GLPK è che è open source e fornisce non solo il tool GLPSOL per la risoluzione interattiva di problemi, ma anche API per linguaggio C/C++. &lt;br /&gt;&lt;br /&gt;In formato GMPL occorre scrivere prima il file modello fargo.gmpl:&lt;br /&gt;&lt;br /&gt;# FARGO’S PRODUCTION PLANNING MODEL&lt;br /&gt;# MODEL file&lt;br /&gt;set R; /* resources */&lt;br /&gt;set P; /* paint products */&lt;br /&gt;param b{r in R}; /* on-hand levels of paint resources (in liters) */&lt;br /&gt;param c{p in P}; /* profit contribution (per liter of paint) */&lt;br /&gt;param a{p in P, r in R}; /* amount of resource consumed from producing paint */&lt;br /&gt;var x{p in P} &amp;gt;= 0; /* amount of paint p to be produced */&lt;br /&gt;s.t. rc{r in R}: sum{p in P} a[p,r] * x[p] &amp;lt;= b[r];&lt;br /&gt;/* resource capacity */&lt;br /&gt;maximize profit: sum{p in P} c[p] * x[p];&lt;br /&gt;/* total profit (dollars) */&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;poi va scritto il file dati fargo.data:&lt;br /&gt;&lt;br /&gt;data;&lt;br /&gt;set R := Pigment Solvent Oil;&lt;br /&gt;set P := PaintA PaintB PaintC PaintD;&lt;br /&gt;param : b :=&lt;br /&gt;Pigment 20 /* liters */&lt;br /&gt;Solvent 25 /* liters */&lt;br /&gt;Oil 40 /* liters */ ;&lt;br /&gt;param : c :=&lt;br /&gt;PaintA 12 /* euros */&lt;br /&gt;PaintB 8 /* euros */&lt;br /&gt;PaintC 9 /* euros */&lt;br /&gt;PaintD 11 /* euros */ ;&lt;br /&gt;param a : PaintA PaintB PaintC PaintD :=&lt;br /&gt;Pigment 0.8 0.5 0.2 0.3&lt;br /&gt;Solvent 0.4 0.2 0.5 0.6&lt;br /&gt;Oil 0.5 0.7 0.6 0.4 ;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;I comandi dovranno usare questa volta le opzioni --model e --data&lt;br /&gt;&lt;br /&gt;Per una introduzione teorica dei problemi LP vi segnalo il pdf "Linear Programming&lt;br /&gt;A Concise Introduction - Thomas S. Ferguson" che potrete scaricare da internet.&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-6684331106688343677?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/6684331106688343677/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/programmazione-lineare.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6684331106688343677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6684331106688343677'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/09/programmazione-lineare.html' title='Programmazione lineare'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-2742339890300197868</id><published>2010-08-26T08:23:00.000-07:00</published><updated>2010-10-03T01:22:43.254-07:00</updated><title type='text'>Algoritmica Ricreativa</title><content type='html'>Nella vita di tutti i giorni ognuno di noi applica algoritmi in modo consapevole o inconsapevole:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;come fare meglio un'attività,&amp;nbsp;&lt;/li&gt;&lt;li&gt;come organizzare, in sequenza e/o in parallelo, delle attività (pianificazioni),&amp;nbsp;&lt;/li&gt;&lt;li&gt;come massimizzare ottimizzare delle risorse (tempo, memoria, spiccioli, probabilità, ricchezza, etc),&lt;/li&gt;&lt;li&gt; come individuare gruppi di informazioni nascoste rispetto a determinate dimensioni (clustering),&amp;nbsp;&lt;/li&gt;&lt;li&gt;come individuare relazioni e reti di comportamento (organizzazioni, mercati, etc)&lt;/li&gt;&lt;li&gt;come individuare gerarchi ad albero (es: parentele etc) &lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I nostri algoritmi vengono "implementati" meccanicamente, intuitivamente.&lt;br /&gt;&lt;br /&gt;Possono essere algoritmi deterministici o non deterministici. Quelli deterministici si sviluppano facilmente basandosi su delle regole esprimibili matematicamente, quelli non deterministici spesso si devono basare su probabilità e/o su euristica. &lt;br /&gt;&lt;br /&gt;Molti sono i problemi matematici-informatici non ancora soddisfacentemente risolti. Molti di essi fanno parte del problema del millennio "P=NP?". I problemi P sono problemi che si risolvono in un tempo polinomiale, ovvero in un tempo al più potenza dell'input. I problemi NP sono, invece, quelli "non polinomiali", molto spesso NP-completi (vedi Wikipedia).&lt;br /&gt;&lt;br /&gt;Fanno parte della famiglia NP la fattorizzazione di un numero con molte cifre (su cui si basa l'inviolabilità del RSA), il problema del logaritmo discreto, il problema del commesso viaggiatore, il problema dell'ottimizzazione&amp;nbsp; del sacco, delle pesate etc.&lt;br /&gt;&lt;br /&gt;Non crediate che solo i problemi famosi sono di questo tipo. Pensate al fastidio degli innumerevoli spiccioli che dobbiamo portarci dietro, questa estate, nel piccolo taschino dei pantaloni.&lt;br /&gt;&lt;br /&gt;E' ovvio che chiunque che debba pagare un caffè, cercherà di levarsi quanti più spiccioli è possibile.&lt;br /&gt;&lt;br /&gt;Ecco un problema ricreativo: "Come lavora un algoritmo per massimizzare il numero di monete in centesimi ed euro con cui pagare il bar?"&lt;br /&gt;&lt;br /&gt;Supponiamo di avere:&lt;br /&gt;&lt;br /&gt;S&amp;nbsp; la somma da pagare&lt;br /&gt;Q1 monete da taglio T1 (1 cent)&lt;br /&gt;Q2 monete da taglio T2 (5 cent)&lt;br /&gt;Q3 monete da taglio T3 (10 cent)&lt;br /&gt;Q4 monete da taglio T4 (20 cent)&lt;br /&gt;Q5 monete da taglio T5 (50 cent)&lt;br /&gt;Q6 monete da taglio T6 (1 euro)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Dopo vari tentativi è sufficiente in ciclo individuare il valore dell'indice i tale che Sum(Qi*Ti) &amp;gt; S e in tal modo individuiamo la prima moneta di taglio Ti da usare.&lt;br /&gt;&lt;br /&gt;A questo punto si ripete come se la somma da pagare nuova è Sn= S - Ti. Se Sn= S- Ti è positivo si ripete il ciclo per individuare un'altro taglio di moneta Ti e così via; se invece S - Ti &amp;lt; 0 significa che occorre ricevere resto e l'algoritmo si arresta.&lt;br /&gt;&lt;br /&gt;In tal caso col resto ricevuto si cercherà di farsi cambiare dalla cassa le ulteriori monetine rimaste con poche altre monete di taglio maggiore.&lt;br /&gt;&lt;br /&gt;Supponiamo S=85 centesimi, Q1=9, Q2=3, Q3=6, Q4=3, Q5=2, Q6=1. Allora se provate ad applicare più volte l'algoritmo, otterrete che ci possiamo liberare in prima battuta di 13 monetine su 28: una da 20 c, cinque da 10 c, due da 5 c, cinque da 1c.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Stesso problema, altra prospettiva&lt;/u&gt;: "Dobbiamo pagare una lavatrice, non abbiamo assegni ma contante e spiccioli".&lt;br /&gt;&lt;br /&gt;Se dobbiamo pagare 400 euro con l'algoritmo di sopra ci linciano! L'algoritmo in questo caso è simile a quello di sopra ma tenta di prendere prima le monete di taglio maggiore (es: 500 euro, 100 euro, 50 euro, 10 euro) in assoluto.&lt;br /&gt;&lt;br /&gt;I due problemi di sopra sono semplici e usano una tecnica lineare per trovare la soluzione. Se pensiamo, invece, allo stesso problema da un punto di vista ulteriore le cose si possono complicare un poco soprattutto per l'efficienza perchè si passa ad un problema esponenziale.&lt;br /&gt;&lt;br /&gt;Problemi inutili? Pensate all'algoritmo "intelligente" che deve avere un distributore bancomat. Sa&amp;nbsp; che dispone di una somma totale iniziale che varia ad ogni cliente, sa che in generale ha tagli da 10 euro, 20 e 50 con una certa quantità iniziale (anche nulla per certi tagli nel tempo), deve cercare di dare la somma richiesta dal cliente rispetto al massimo consentitogli (esempio 250 euro) cercando di dare diversi&amp;nbsp; tagli&amp;nbsp; e di proporre le somme che si avvicinano alla somma in denaro richiesta.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Corrispondenza esatta&lt;/u&gt; &lt;br /&gt;Analizzate il problema: "Trovare le monete che paghino esattamente 85 centesimi". L'algoritmo in tal caso deve fare tutte le somme possibili tra 1 o più combinazioni di monete disponibili e vedere quali somme danno 85 come risultato; certamente è un algoritmo esponenziale.&lt;br /&gt;&lt;br /&gt;Spesso il trucco, se non ci sono vincoli al problema, è di massimizzare o minimizzare una risorsa per portarsi in un problema lineare, ma in alcuni casi non è nemmeno semplice, come nel caso del problema del commesso viaggiatore: in tale problema il commesso viaggiatore deve fare in modo di fare il minimo percorso tale che si passi per una stessa strada una sola volta, partendo da casa e passando per ogni strada dove deve fare la commissione, e poi ritornare alla fine del percorso di nuovo a casa.&lt;br /&gt;&lt;br /&gt;Purtroppo in questo caso occorre verificare tutti i percorsi, marcarli con un peso e alla fine trovare decidere il percorso migliore; esistono anche dei trucchi per ridurre tale ricerca, ma in ogni caso un algoritmo efficiente non di natura esponenziale finora non è stato individuato.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-2742339890300197868?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/2742339890300197868/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/08/algoritmica-ricreativa.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2742339890300197868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2742339890300197868'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/08/algoritmica-ricreativa.html' title='Algoritmica Ricreativa'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8186083611650398845</id><published>2010-08-07T13:33:00.000-07:00</published><updated>2010-08-11T12:21:47.529-07:00</updated><title type='text'>Numeri Creazionali, la metafora dell'aquilone e la sequenza di Collatz, gli automi cellulari</title><content type='html'>&lt;b style="background-color: blue;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Introduzione&lt;/b&gt;&lt;br /&gt;In questo blog introduciamo prima una problematica ancora vicina alla Teoria dei Numeri, poi successivamente problemi di settori apparentemente diversi ma dove la struttura sottostante è sempre guidata da modelli matematici. &lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Numeri creazionali&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Il numero creazionale di un numero n, che indichiamo col simbolo C(n), è il minor numero di cifre che occorre usare per costruire n. &lt;br /&gt;&lt;br /&gt;Facciamo delle "ipotesi creazionali di base":&lt;br /&gt;1) è possibile usare le operazioni +,*,-,/,^&lt;br /&gt;2) è possibile usare i digit D=1,2 ma non necessariamente da usare insieme&lt;br /&gt;&lt;br /&gt;Se n=80, D=1 allora C(80) &amp;lt;= 13 &lt;br /&gt;&lt;br /&gt;Difatti:&lt;br /&gt;&lt;br /&gt;80=5*4*4=(1+1+1+1+1)*(1+1+1+1)*(1+1+1+1)&lt;br /&gt;&lt;br /&gt;Abbiamo usato solo il digit 1, ma se usassimo anche il 2?&lt;br /&gt;Esempio:&lt;br /&gt;n=81, D=1,2 allora C(81)&amp;lt;=5&lt;br /&gt;81=(2^(2+1)+1)^2&lt;br /&gt;&lt;br /&gt;n = 20 D=1,2 C(20) &amp;lt;= 5&lt;br /&gt;20 = 2^(2+2)+2+2&lt;br /&gt;&lt;br /&gt;n=120 D=1,2 C(120)&amp;lt;=6&lt;br /&gt;120 = ((2+1)^2+2)^2-1&lt;br /&gt;&lt;br /&gt;n=567 D=1,2 C(567)&amp;lt;=8&lt;br /&gt;567 = (2^(2+2+2)-1)*(2+1)^2&lt;br /&gt;&lt;br /&gt;Una strategia algoritmica semplice è: &lt;br /&gt;a) ritenere il massimo valore pari al numero n stesso (come somma di 1); &lt;br /&gt;b) individuare il minimo valore possiamo con la potenza k di 2 più grande ma tale che il tutto sia minore o uguale a n stesso (2^k &amp;lt;= n), con k trasformato come somma di 2 e/o 1 o anche prodotti o potenze di 2, sommando, infine, se necessario 1 o altre potenze di 2.&lt;br /&gt;&lt;br /&gt;Ad esempio:&lt;br /&gt;C(21)&amp;lt;=6&lt;br /&gt;21 = 2^(2^2) + 2^2 + 1&lt;br /&gt;&lt;br /&gt;C(27)&amp;lt;=8&lt;br /&gt;27 = 2^(2^2) + 2^(2+1) + 2 + 1&lt;br /&gt;&lt;br /&gt;E' possibile per un fissato n, D=1,2 e le 5 operazioni considerate poter calcolare direttamente, senza algoritmo ma con una formula, il numero minimo di cifre necessarie a creare n?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sequenza di Collatz&lt;/b&gt;&lt;br /&gt;Un problema di interesse in ambito studio del chaos è quello suggerito dalla metafora dell'aquilone o dei chicchi di grandine.&lt;br /&gt;&lt;br /&gt;Immaginiamo che ci siano folate di vento che portano verso l'alto oggetti leggeri come i chicchi di grandine o aeroplanini di carta, meglio ancora degli aquiloni.&lt;br /&gt;&lt;br /&gt;Immaginiamo che l'aquilone parta da una altezza h (un numero), scende in basso in picchiata e poi una folata di vento lo riporta in alto, poi di nuovo scende in basso e così via fino ad atterrare al suolo (suolo = 1).&lt;br /&gt;&lt;br /&gt;Ebbene il problema di Collatz o la sequenza di Collatz si genera a partire da un numero n, se n è pari lo si divide per 2, se n è dispari lo si moltiplica per 3 e si somma 1. Il procedimento si itera sul risultato.&lt;br /&gt;&lt;br /&gt;La sequenza termina sempre a 1? E' ciclica, aciclica o convergente a 1?&lt;br /&gt;&lt;br /&gt;Un lavoro su questo argomento è al link &lt;a href="http://www.rudimathematici.com/Bookshelf/notes/RTC03.pdf"&gt;http://www.rudimathematici.com/Bookshelf/notes/RTC03.pdf&lt;/a&gt;&lt;br /&gt;Il software è disponibile su &lt;a href="http://www.gruppoeratostene.com/"&gt;www.gruppoeratostene.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Solo oggi si sta iniziando ad usare la "computer graphic" per comprendere la struttura esistente dietro la matematica.Perchè ci sono schemi nascosti?&lt;br /&gt;&lt;br /&gt;I numeri che si ottengono come output sono le traettorie seguite dall'aquilone prima di giungere al suolo (=1); ma alcuni numeri si presentano più frequentemente e il valore massimo raggiungibile nella traettoria o glide è un numero abbastanza interessante (gli autori presentano una Congettura sul Massimo nella glide); ad esempio 9232 è un massimo che si presenta in più di 350 numeri tra i gli iniziali 1000 interi.&lt;br /&gt;&lt;br /&gt;Ma perchè nell'ambito della glide alcuni numeri sono più frequenti e ci sono determinati raggruppamenti?&lt;br /&gt;&lt;br /&gt;Il problema di Collatz è scollegato dalla Teoria dei numeri? Gli autori mostrano anche un possibile legame con i numeri di Mersenne ed indagano su diversi teoremi. &lt;br /&gt;&lt;br /&gt;Il problema di Collatz rientra in settori tipici molto importanti: &lt;b&gt;Automi Cellulari (AC), Social Network Analisys, Chaos, Frattali, Robotica, batrachioni, Sistemi complessi&lt;/b&gt;&amp;nbsp; etc. settori oggi molto studiati.&lt;br /&gt;&lt;br /&gt;In ambito AC la sequenza di Collatz è in effetti&amp;nbsp; un AC monodimensionale (d=1) lineare&amp;nbsp; con raggio r=2/3 (infatti in ambito computer graphic il grafico è indicativo di chaos o di frattale) e secondo la classificazione dello studioso Stephen Wolfram è un AC di Classe 1, cioè partendo da n la sua evoluzione porta ad uno stato omeogeneo (sempre lo stesso, l'1) indipendentemente dall'input n.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Batrachioni e chaos&lt;/b&gt;&lt;br /&gt;In una rete (Social Network o una rete di automi cellulari) l'evoluzione tiene almeno conto di quello che è accaduto nelle vicinanze, o anche NON immediatamente vicino (dipende dal problema). Il chaos, i batrachioni, i frattali, le trasformazioni lineari, le funzioni biettive e i mapping sono argomenti di notevole interesse per diverse discipline, tra cui anche la Social Network Analisys.&lt;br /&gt;&lt;br /&gt;Una cosa che potrebbe sembrare inaspettata è la complessità che può emergere da semplici formule iterative, dando luogo a rappresentazioni di chaos, di frattali etc.&lt;br /&gt;&lt;br /&gt;Un pò come le formule iterative di Fibonacci ne esistono altre altrettanto interessanti, come quelle delle curve dei "batrachioni". Il termine deriva dal &lt;i&gt;greco batracen&lt;/i&gt; ovvero rana (in letteratura anche "&lt;i&gt;small frog&lt;/i&gt;"), proprio perchè le curve che si ottengono sembrano dei saltelli all'infinito di rane che diminuiscono di altezza (ma non di ampiezza). Le curve sono tipicamente frattali perchè sul bordo presentano oscillazioni auto-somiglianti.&lt;br /&gt;&lt;br /&gt;Una formula dovuta a Hofstadter-Conway è del tipo:&lt;br /&gt;&lt;br /&gt;a[i]=a[a[i-1]]+a[i-a[i-1]]&lt;br /&gt;con a[1]=1 e a[2]=1&lt;br /&gt;&lt;br /&gt;Di interesse è il valore a[i]/i. Conway dimostrò che per lim n-&amp;gt;inf a[n]=1/2.&lt;br /&gt;&lt;br /&gt;Una sequenza caotica altrettanto interessante è:&lt;br /&gt;a[i]=a[a[i-1]]+a[i-a[i-2]-1]&lt;br /&gt;con a[1]=1 e a[2]=1&lt;br /&gt;&lt;br /&gt;altre ancora che sono possibili sono:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a[i]=a[a[i-1]]+a[i-a[i-2]-1];&lt;br /&gt;&lt;br /&gt;L'ultima che fa riferimento ad elementi non adiacenti è:&lt;br /&gt;&amp;nbsp;&amp;nbsp; a[i]=a[a[i-2]]+a[i-a[i-3]-v];&amp;nbsp;&amp;nbsp; con v=1,2&lt;br /&gt;&lt;br /&gt;Vedi &lt;a href="http://mathworld.wolfram.com/Hofstadter-Conway10000-DollarSequence.html"&gt;http://mathworld.wolfram.com/Hofstadter-Conway10000-DollarSequence.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Interessanti sono anche le &lt;i&gt;BlancMange Function&lt;/i&gt; Vedi &lt;a href="http://mathworld.wolfram.com/BlancmangeFunction.html"&gt;http://mathworld.wolfram.com/BlancmangeFunction.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Automi cellulari&lt;/b&gt;&lt;br /&gt;Gli automi cellulari sono "sistemi complessi" usati per modellare gli dinamica dei flussi dei liquidi, le reazioni chimiche, incendi boschivi, la propagazione e nascita delle piante, di animali, e virus, percolazione del caffè, colata lavica, morfologia urbana e territoriale, inondazioni, diffusione degli inquinanti, etc&lt;br /&gt;&lt;br /&gt;Sono spesso dette "strutture omogenee", "strutture cellulari" e "tabelle iterative".&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Alcuni di questi automi cellulari si comportano in maniera strana e casuale, altri in modo ordinato, alla "frattale".&lt;br /&gt;&lt;br /&gt;Si può avere anche una rete di automi cellulari, ognuno dei quali con regole simili ad altri (omogeneità). Di solito valgono le &lt;i&gt;proprietà di Parallelismo&lt;/i&gt; (al tempo t parallelamente avvengono azioni su ogni cella o individuo), &lt;i&gt;Omogeneità&lt;/i&gt; (stesse regole al tempo t per tutti i nodi della rete o individui, &lt;i&gt;Località&lt;/i&gt; (lo stato di un individuo al tempo discreto t+1 dipende dal proprio stato e quello dei vicini).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Il concetto di automa cellulare è nato negli anni '50 con &lt;i&gt;von Neumann&lt;/i&gt; e &lt;i&gt;Stanlislaw Ulam&lt;/i&gt;. Conway ideò l'automa cellulare &lt;i&gt;Life&lt;/i&gt; (Vita). &lt;i&gt;Martin Gardner &lt;/i&gt;pubblicizzò la cosa come un gioco su Scientific American nell'ottobre del '70.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ogni equazione differenziale si può tradurre in un automa cellulare (equazioni a differenze finite ad esempio). Da qui ad esempio si può usare l'equazione del calore per studiare una rete (anche una Social Network), ipotizzando che per il problema in questione la diffusione del calore sia un modello matematico adatto alla rete.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Life è il punto di partenza per chi vuole apprendere gli automi cellulari.&amp;nbsp; Vedi gioco &lt;a href="http://www.bitstorm.org/gameoflife/"&gt;http://www.bitstorm.org/gameoflife/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gli automi monodimensionali studiati da Wolfram sono l'altro punto di partenza.&lt;br /&gt;Vedi &lt;a href="http://alpha01.dm.unito.it/personalpages/cerruti/Az1/wolfram.html"&gt;http://alpha01.dm.unito.it/personalpages/cerruti/Az1/wolfram.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Per Collatz come AC vedi &lt;a href="http://demonstrations.wolfram.com/CollatzProblemAsACellularAutomaton/"&gt;http://demonstrations.wolfram.com/CollatzProblemAsACellularAutomaton/&lt;/a&gt;&lt;br /&gt;e l'articolo &lt;a href="http://arxiv.org/PS_cache/nlin/pdf/0502/0502061v1.pdf"&gt;http://arxiv.org/PS_cache/nlin/pdf/0502/0502061v1.pdf&amp;nbsp;&lt;/a&gt;&amp;nbsp; Tra l'altro si tratta di un AC "non invertibile"; difatti se per ogni n si giunge sempre a 1 è difficile risalire al valore n di partenza nella sequenza di Collatz. &lt;br /&gt;&lt;br /&gt;Per una introduzione al Social Network Analysis Vedi &lt;a href="http://www.slideshare.net/marcomuzza/social-network-analysis-presentation-919991"&gt;http://www.slideshare.net/marcomuzza/social-network-analysis-presentation-919991&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gli AC hanno una notevole importanza anche per lo studio di difficili equazioni come le equazioni di Navier-Stokes (altro problema del millennio).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8186083611650398845?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8186083611650398845/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/08/numeri-creazionali.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8186083611650398845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8186083611650398845'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/08/numeri-creazionali.html' title='Numeri Creazionali, la metafora dell&apos;aquilone e la sequenza di Collatz, gli automi cellulari'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-2517464034010311985</id><published>2010-07-09T11:58:00.000-07:00</published><updated>2010-07-09T11:58:49.416-07:00</updated><title type='text'>Goldbach e il metodo del cerchio - PARI/GP e la risoluzione delle equazioni - il crivello di Dirichlet</title><content type='html'>La congettura di Goldbach è un tema tipico della Teoria dei Numeri, che facilmente attira tutti gli appassionati di Matematica, anche per la sua facilità di comprensione e per la semplicità della definizione del problema, ma è un problema solo apparentemente semplice e ve ne renderete conto nel seguito.&lt;br /&gt;&lt;br /&gt;Fin quando si rimane in ambito algebrico, geometrico, di matematica elementare e per bassi valori di interi, allora apparentemente sembra una congettura dimostrabile e vera. Se la congettura, invece, è affrontata in ambito analisi complessa, allora si scoprono ulteriori problematiche che possono mettere in crisi le dimostrazioni elementari trovate. Il metodo del cerchio è una tecnica nata negli anni '20 ad opera di Hardy, Littlewood e Ramanujan, utilizzata per i problemi additivi; successivamente migliorata da Vinogradov.&lt;br /&gt;&lt;br /&gt;Un articolo a tal proposito è presente su:&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_899697105"&gt;http://www.gruppoeratostene.com/articoli/Cerchio.pdf &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rudimathematici.com/Bookshelf/notes/Cerchio.pdf"&gt;http://www.rudimathematici.com/Bookshelf/notes/Cerchio.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Il secondo articolo che vi presentiamo nasce per mostrare l'utilizzo di PARI/GP per la risoluzione di vari tipi di equazioni o sistemi di equazioni: le congruenze lineari, i sistemi di congruenze lineari, le equazioni diofantee, l'equazione di Pell, una equazione di grado N etc. Ovviamente vengono mostrati anche dei sorgenti didattici con PARI/GP (sulla sezione software di www.gruppoeratostene.com).&lt;br /&gt;&lt;br /&gt;Il link dell'articolo è &lt;a href="http://www.gruppoeratostene.com/articoli/AEQ.pdf"&gt;http://www.gruppoeratostene.com/articoli/AEQ.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Il terzo articolo mostra come nasce un crivello o setacciatore di numeri primi, a partire dal problema dei divisori di Dirichlet.&lt;br /&gt;&lt;br /&gt;Il link è &lt;a href="http://www.gruppoeratostene.com/articoli/PDC.pdf"&gt;http://www.gruppoeratostene.com/articoli/PDC.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alla prox.&lt;br /&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-2517464034010311985?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/2517464034010311985/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/07/goldbach-e-il-metodo-del-cerchio-parigp.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2517464034010311985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2517464034010311985'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/07/goldbach-e-il-metodo-del-cerchio-parigp.html' title='Goldbach e il metodo del cerchio - PARI/GP e la risoluzione delle equazioni - il crivello di Dirichlet'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-44905991816117786</id><published>2010-06-12T00:55:00.000-07:00</published><updated>2010-06-12T00:55:42.459-07:00</updated><title type='text'>Calcolo degli zeri della zeta di Riemann</title><content type='html'>&lt;b&gt;Calcolo degli zeri della zeta di Riemann&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Viene presentato un lavoro di calcolo numerico sulla zeta di Riemann a seguito di tanti appassionati che hanno chiesto via mail come si calcolano gli zeri della zeta di Riemann. &lt;br /&gt;&lt;br /&gt;Ne è nato un articolo abbastanza corposo di tali tecniche, spiegate soprattutto in modo intuitivo e dando la possibilità a chi voglia sperimentare di scaricarsi anche il software (da eseguire con PARI/GP) dal sito www.gruppoeratostene.com (sezione Software).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;L'articolo, invece, è stato pubblicato sia da www.gruppoeratostene.com che da RudiMathematici ai link:&lt;br /&gt;&lt;br /&gt;http://www.gruppoeratostene.com/&lt;br /&gt;http://www.rudimathematici.com/blocknotes.htm&lt;br /&gt;&lt;br /&gt;P.S: segnalateci se è stato di vostro gradimento o anche se avete software sviluppato da voi in PARI/GP sull'argomento per mostrarlo ad altri lettori e discuterne.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-44905991816117786?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/44905991816117786/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/06/calcolo-degli-zeri-della-zeta-di.html#comment-form' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/44905991816117786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/44905991816117786'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/06/calcolo-degli-zeri-della-zeta-di.html' title='Calcolo degli zeri della zeta di Riemann'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-6158674469738322362</id><published>2010-05-28T22:46:00.000-07:00</published><updated>2010-06-04T14:12:31.773-07:00</updated><title type='text'>Serie degli inversi dei primoriali e fattoriali</title><content type='html'>La convergenza di una serie è un problema classico di matematica.&lt;br /&gt;&lt;br /&gt;Un modo semplice per "sondare" la serie e stabilire se è convergente o divergente è quello di concentrarci sulla somma S della serie ed usare in PARI/GP le funzionalità suminf oppure sum; in tal modo aumentando il numero di elementi considerati si ha una indicazione sulla serie e la somma S.&lt;br /&gt;&lt;br /&gt;In alcuni altri casi la sola suminf o la sum non è sufficiente e occorre scrivere un piccolo programma.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Primoriali&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Un primoriale p# è uguale al prodotto dei numeri primi, a partire da p, con tutti i numeri primi precedenti.&lt;br /&gt;&lt;br /&gt;Se vogliamo avere una indicazione sulla somma S della serie degli inversi dei primoriali,&lt;br /&gt;possiamo scrivere il seguente programma:&lt;br /&gt;&lt;br /&gt;SerRevPrimorial(n) = local(S=0,P=1);{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;forprime(i=2,n,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P = ProdPrime(i);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S = S + (1/P) * 1.0;&lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;return(S);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ProdPrime(v)= local(p=1);{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;forprime(i=2,v,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = p * i;&lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;return(p);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Se lo eseguiamo, otteniamo:&lt;br /&gt;&lt;br /&gt;? SerRevPrimorial(1)&lt;br /&gt;%35 = 0&lt;br /&gt;? SerRevPrimorial(2)&lt;br /&gt;%36 = 0.5000000000000000000000000000&lt;br /&gt;? SerRevPrimorial(3)&lt;br /&gt;%37 = 0.6666666666666666666666666667&lt;br /&gt;? SerRevPrimorial(5)&lt;br /&gt;%38 = 0.7000000000000000000000000000&lt;br /&gt;? SerRevPrimorial(7)&lt;br /&gt;%39 = 0.7047619047619047619047619047&lt;br /&gt;? SerRevPrimorial(11)&lt;br /&gt;%40 = 0.7051948051948051948051948052&lt;br /&gt;? SerRevPrimorial(100)&lt;br /&gt;%41 = 0.7052301717918009651474316828&lt;br /&gt;? SerRevPrimorial(1000)&lt;br /&gt;%42 = 0.7052301717918009651474316828&lt;br /&gt;? SerRevPrimorial(10000)&lt;br /&gt;%43 = 0.7052301717918009651474316828&lt;br /&gt;&lt;br /&gt;Si osserva che già da p=7 si ottiene che la serie degli inversi dei primoriali converge al valore&lt;br /&gt;0.7047619047619047619047619047, valore leggermente minore della metà della radice quadrata di 2 o del seno di Pigreco/4.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fattoriali&lt;/b&gt; &lt;br /&gt;Se vogliamo, invece, avere indicazioni sulla serie inversa dei fattoriali il programmino è del tipo:&lt;br /&gt;&lt;br /&gt;SerRevFactorial(n) = local(S=0,P=1);{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;for(i=0,n,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P = i!;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S = S + (1/P) * 1.0;&lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;return(S);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Dobbiamo tenere conto anche che 0!=1.&lt;br /&gt;&lt;br /&gt;Se lo eseguiamo, otteniamo:&lt;br /&gt;&lt;br /&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:SimSun;	panose-1:2 1 6 0 3 1 1 1 1 1;	mso-font-alt:宋体;	mso-font-charset:134;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:3 680460288 22 0 262145 0;}@font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;}@font-face	{font-family:"\@SimSun";	panose-1:2 1 6 0 3 1 1 1 1 1;	mso-font-charset:134;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:3 680460288 22 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:SimSun;	mso-fareast-language:ZH-CN;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;	mso-fareast-font-family:SimSun;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;? SerRevFactorial(0)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;%4 = 1.000000000000000000000000000&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;? SerRevFactorial(1)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;%5 = 2.000000000000000000000000000&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;? SerRevFactorial(2)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;%6 = 2.500000000000000000000000000&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;? SerRevFactorial(3)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;%7 = 2.666666666666666666666666667&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;? SerRevFactorial(4)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;%8 = 2.708333333333333333333333333&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;? SerRevFactorial(7)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;%9 = 2.718253968253968253968253968&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;? SerRevFactorial(1000)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt;"&gt;%10 = 2.718281828459045235360287471&lt;/div&gt;Anche qui la serie converge ad un valore già da n=7, ovvero al valore 2.7182818284590452353602874712&lt;br /&gt;che è il numero di Nepero e.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-6158674469738322362?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/6158674469738322362/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/05/serie-degli-inversi-dei-primoriali-e.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6158674469738322362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6158674469738322362'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/05/serie-degli-inversi-dei-primoriali-e.html' title='Serie degli inversi dei primoriali e fattoriali'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8345617136504400278</id><published>2010-05-14T13:06:00.000-07:00</published><updated>2010-05-15T02:43:12.231-07:00</updated><title type='text'>Persiani amichevoli</title><content type='html'>&lt;b&gt;Persiani amichevoli&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Esiste un legame tra numeri primi e numeri amicabili? Abbiamo visto che i numeri primi hanno solo due divisori diversamente da una coppia di numeri amicabili.&lt;br /&gt;&lt;br /&gt;Un quesito: Un numero amicabile è solo pari? Sapreste dimostrare se è vero o falso?&lt;br /&gt;&lt;br /&gt;Mentre meditate, vi dico che sicuramente un numero amicabile è composto, perchè ammette un numero di divisori maggiore di 2 e, quindi, scomponibile in numeri primi.&lt;br /&gt;&lt;br /&gt;Altra domanda: dati tre numeri primi p,q,r possiamo ottenere dei numeri amicabili?&lt;br /&gt;&lt;br /&gt;Al-Faris, vissuto in Persia attorno al 1300, nel suo testo sulle coppie amicabili, fornì la coppia (2^k)pq, (2^k)r, che è amicabile se e solo se: &lt;br /&gt;&lt;br /&gt;p = (3*(2^(k-1)))-1, &lt;br /&gt;q = (3*(2^k))-1 &lt;br /&gt;r = 9*(2^(2k-1))-1 &lt;br /&gt;&lt;br /&gt;sono tutti numeri primi, per k maggiore o uguale a 2.&lt;br /&gt;&lt;br /&gt;E' evidente, per la definizione di Al Faris su come trovare i numeri amicabili tramite tre primi, che si tratta di potenze di 2 (pari) moltiplicate per dei dispari, il cui risultato è obbligatoriamente un pari. &lt;br /&gt;&lt;br /&gt;Se si fissa k=2, si ottiene ad esempio p=5, q=11, r=71 tutti primi e quindi la coppia amicabile 220 e 284.&lt;br /&gt;&lt;br /&gt;Per vedere quali coppie di numeri sono amichevoli con p,q,r primi è possibile scrivere un programmino in PARI/GP o in MAXIMA. In realtà si potrebbe tentare anche di risolvere un sistema di equazioni.&lt;br /&gt;&lt;br /&gt;Il metodo di Al-Faris però non dà tutte le coppie di numeri amicabili, ma solo quelle ottenibili con le condizioni di cui sopra (vedi lista amichevoli noti &lt;a href="http://amicable.homepage.dk/knwnc2.htm"&gt;http://amicable.homepage.dk/knwnc2.htm&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Ad esempio sono amichevoli anche le coppie (1184,1210) (2620,2924) (5020,5564) (6232,6368) che storicamente furono trovate da Eulero. Oggi il totale di coppie note, grazie ai computer è notevole: un totale di circa 11994387 coppie e si continua a trovarne altre.&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;Ecco un semplice programma in PARI/GP che sfrutta l'algoritmo di Al-Faris.&lt;br /&gt;Samic(n1=2, n2=1000)=local();{&lt;br /&gt;&amp;nbsp;if( n1&amp;lt;2, error("deve essere n1&amp;gt;=2"););&lt;br /&gt;&amp;nbsp;for(k=n1,n2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p=(3*(2^(k-1)))-1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q=(3*(2^(k)))-1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r=(9*(2^(2*k-1)))-1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isprime(p) &amp;amp; isprime(q) &amp;amp; isprime(r) == 1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N=(2^k)*(p*q);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M=(2^k)*r;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("(",N,",",M,")");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;print("Numeri esaminati ", n2-n1+1 );&lt;br /&gt;&amp;nbsp;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Ecco cosa fornisce con k tra 2 e 1000:&lt;br /&gt;(220,284)&lt;br /&gt;(17296,18416)&lt;br /&gt;(9363584,9437056)&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Vi do adesso la risposta al quesito iniziale: è falso. Esistono anche coppie di numeri amichevoli dispari e coppie di numeri amichevoli pari; ma non si trovano miste, ovvero uno pari e l'altro dispari. E' dimostrabile?&lt;br /&gt;La lascio a voi la dimostrazione. Un suggerimento: partite dalla somma dei divisori (escluso se stesso) di un numero amichevole pari; che cosa vi da e perchè?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Altre osservazioni&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. Nessun numero amichevole è un quadrato&lt;br /&gt;&lt;br /&gt;2. Esistono coppie di numeri amichevoli la cui somma delle cifre è uguale (mod 9); esempio:&amp;nbsp; &lt;br /&gt;&lt;div align="justify"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (69615,87633)&amp;nbsp; da cui&amp;nbsp; 6+9+6+1+5 = 27 e 8+7+6+3+3 = 27&lt;/div&gt;&lt;div align="justify"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; il mod 9 = 0 per entrambi&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;3. Esistono coppie amichevole che ogni numero è divisibile per la somma delle sue cifre; esempio:&lt;/div&gt;&lt;div align="justify"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (2620, 2924). Qui 2+6+2+0=10 difatti 2610 è divisibile per 10; mentre 2+9+2+4=17 e 2924 è&amp;nbsp;&lt;/div&gt;&lt;div align="justify"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; divisibile per 17. Un numero divisibile per la somma delle sue cifre è detto &lt;i&gt;Harshad number&lt;/i&gt;;&amp;nbsp;&lt;/div&gt;&lt;div align="justify"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; per cui la coppia amichevole è una &lt;i&gt;Harshad amicable pair (HsAP)&lt;/i&gt;.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Esempi sono le coppie:&lt;br /&gt;&lt;br /&gt;&lt;div style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (2620, 2924)&lt;/div&gt;&lt;/div&gt;&lt;div align="justify"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; (10634085,14084763),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (23389695, 25132545),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (34256222, 35997346)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; etc.&lt;br /&gt;&lt;br /&gt;4 Spesso i numeri amichevoli di una coppia terminano con 0 e 5.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;5 Il rapporto minimo n/m con n&lt;m attualmente="" compreso="" tra="" è=""&gt;&lt;span style="color: blue;"&gt; &lt;span style="color: black;"&gt;minore di m è tra &lt;/span&gt;0.598343 e&lt;/span&gt;&lt;/m&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: purple;"&gt;0.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999998&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="color: black;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify" style="color: black;"&gt;6. Un Happy number è un numero tale che prendendo il quadrato delle sue cifre e sommandole e iterando il&amp;nbsp;&lt;/div&gt;&lt;div align="justify" style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; processo si ottiene alla fine 1. Ad esempio prendiamo 7, si ottiene la sequenza:&lt;/div&gt;&lt;div align="justify" style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7,7x7=49,4x4+9x9=97,9x9+7x7=130,1x1+3x3=10,1x1=1.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: black;"&gt;Le coppie di numeri amichevoli che sono costituite da &lt;/span&gt;&lt;i style="color: black;"&gt;Happy number&lt;/i&gt;&lt;span style="color: black;"&gt; sono definite &lt;/span&gt;&lt;i style="color: black;"&gt;Happy amicable&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="color: black;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pair&amp;nbsp; &lt;/i&gt;&lt;i&gt;(HyAP)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; Esempi sono le coppie:&lt;br /&gt;&lt;i&gt;&amp;nbsp; &lt;/i&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(10572550, 10854650),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (32685250, 34538270),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (35361326, 40117714),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (35390008, 39259592) &lt;/div&gt;&lt;div align="justify"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; etc.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Algoritmo che cerca tutti i numeri amichevoli&lt;/b&gt;&lt;br /&gt;Un algoritmo semplice che cerca, invece, tutti i numeri amichevoli può essere come quello che segue&lt;br /&gt;&lt;br /&gt;Allamic(n1=2, n2=1000)=local(s=0, prec1=0);{&lt;br /&gt;&amp;nbsp;if( n1&amp;lt;2, error("deve essere n1&amp;gt;=2"););&lt;br /&gt;&amp;nbsp;for(k=n1,n2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s=AlqSum(k);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( AlqSum(s) == k &amp;amp;&amp;amp; k! = s &amp;amp; k != prec1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("(",k,",",s,")");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prec1=s; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;print("Numeri esaminati ", n2-n1+1 );&lt;br /&gt;&amp;nbsp;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;AlqSum(n)=local(ret=1);{&lt;br /&gt;&amp;nbsp;vec = divisors(n);&lt;br /&gt;&amp;nbsp;ret = sum(i=1, length(vec)-1, vec[i] );&lt;br /&gt;&amp;nbsp;return(ret);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Alla prox&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8345617136504400278?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8345617136504400278/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/05/persiani-amichevoli.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8345617136504400278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8345617136504400278'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/05/persiani-amichevoli.html' title='Persiani amichevoli'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8273046400227761568</id><published>2010-05-01T00:00:00.000-07:00</published><updated>2010-05-01T13:20:01.296-07:00</updated><title type='text'>Parti aliquote e successioni aliquote</title><content type='html'>&lt;b&gt;Parti aliquote e successioni aliquote&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Definiamo con s(n) la somma dei divisori (parti aliquote) di n, escluso n.&lt;br /&gt;&lt;br /&gt;Si definisce n &lt;i&gt;numero perfetto&lt;/i&gt; se s(n) = n, oppure &lt;i&gt;numero abbondante &lt;/i&gt;se s(n)&amp;gt;n, &lt;i&gt;difettivo&lt;/i&gt; se s(n)&lt;n.&gt;&amp;lt;n&lt;br /&gt;&lt;br /&gt;Si definisce "&lt;i&gt;successione aliquota&lt;/i&gt;", invece, la successione dei valori di s(x), arrestandosi a s(x)=0,che si ottiene nel seguente modo:&lt;br /&gt;&lt;br /&gt;s(n) = k&lt;br /&gt;s(k) = m&lt;br /&gt;s(m) = ... etc&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Esempio&lt;/b&gt;&lt;br /&gt;s(15)=1+3+5=9, s(9)=1+3=4,s(4)=1+2=3,s(3)=1,s(1)=0&lt;br /&gt;&lt;br /&gt;Nota: L'arresto a s(x)=0 è perchè infiniti numeri sono divisibili per 0.&lt;br /&gt;&amp;nbsp;&lt;/n.&gt;&lt;br /&gt;&lt;b&gt;Classi di comportamento &lt;/b&gt;&lt;br /&gt;Ogni successione aliquota potenzialmente potrebbe ricadere in una delle seguenti classi di comportamento:&lt;br /&gt;1. termina a 0&lt;br /&gt;2. finisce in un ciclo, di lunghezza 1, di lunghezza 2 o maggiore&lt;br /&gt;3. potrebbe crescere all'infinito &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Successioni che terminano a 0&lt;/b&gt;&lt;br /&gt;E' il caso dell'esempio di cui prima.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Successioni di lunghezza 1&lt;/b&gt;&lt;br /&gt;I numeri perfetti hanno tale caratteristica. Ad esempio s(6)=6, s(28)=28, etc.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Congettura sui numeri perfetti&lt;/i&gt;&lt;br /&gt;Si ipotizza che sono infiniti.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Successioni di lunghezza 2&lt;/b&gt;&lt;br /&gt;I numeri amichevoli hanno questa caratteristica. Due numeri amichevoli a e b sono così definiti perchè la s(a)=b e s(b)=a.&lt;br /&gt;&lt;br /&gt;Ad esempio la più piccola coppia di numeri amichevoli è (220,284).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Congettura sui numeri amichevoli&lt;/i&gt;&lt;br /&gt;Si ipotizza che sono infiniti.&lt;br /&gt;&lt;br /&gt;Liste di numeri amichevoli&lt;br /&gt;http://djm.cc/amicable.txt&lt;br /&gt;http://amicable.homepage.dk/knwnap.htm&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Successioni di lunghezza maggiore di 2&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;I numeri che danno luogo a sequenze di lunghezza maggiore di 2 sono detti numeri socievoli&lt;br /&gt;&lt;br /&gt;Lista di numeri socievoli&lt;br /&gt;http://djm.cc/sociable.txt&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Congettura di Catalan e Dickson&lt;/i&gt;&lt;br /&gt;Tale congettura ipotizza che tutte le sequenze aliquote a partire da un valore n intero&amp;nbsp; terminano nelle prime due classi di comportamento e mai crescendo all'infinito.&lt;br /&gt;&lt;br /&gt;La congettura non è ancora provata e attualmente anche a livello di test al computer finora non si sono completamente testate tutte le situazioni. Ad esempio una di queste è n=276.&lt;br /&gt;&lt;br /&gt;Recentemente si sta mettendo in dubbio la congettura, ovvero si è convinti, sempre come congettura da dimostrare, che in realtà anche la classe di comportamento 3 è possibile (vedi [GUY1977] R. K. Guy, Aliquot sequences, in Number Theory and Algebra (Academic Press, 1977). &lt;br /&gt;&lt;br /&gt;Se vi va, trovate un controesempio e avrete posto fine alla congettura di Catalan e Dickson!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Problemi correlati&lt;/b&gt;&lt;br /&gt;Sfruttando la tecnica delle parti aliquote e modificandone la funzione in gioco si possono costruire altri tipi di numeri.&lt;br /&gt;&lt;br /&gt;Definiamo s+(n) = s(n) + 1&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Tutte le potenze di 2 sono di questo tipo e di lunghezza 1 (numeri quasi perfetti).&lt;br /&gt;Esistono anche sequenze s+ di lunghezza 2, dette "&lt;i&gt;coppie amichevoli quasi perfette&lt;/i&gt;"; mentre per lunghezze maggiore di 2 si parla di "&lt;i&gt;numeri sociali quasi perfetti".&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Vedi: &lt;br /&gt;http://djm.cc/augmented.fmtlist&lt;br /&gt;http://djm.cc/augsoc.fmtlist&lt;br /&gt;&lt;br /&gt;Analogamente definiamo s-(n) = s(n) - 1&lt;br /&gt;&lt;br /&gt;otterremo numeri definiti nel seguente modo:&lt;br /&gt;&lt;i&gt;numeri ridotti perfetti o quasi perfetti&lt;/i&gt;&lt;br /&gt;&lt;i&gt;numeri ridotti amichevoli o quasi amichevoli (o numeri fidanzati)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;numeri ridotti socievoli o quasi socievoli &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Vedi:&lt;br /&gt;http://djm.cc/reduced.fmtlist&lt;br /&gt;http://djm.cc/redsoc.fmtlist&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Nuove ricerche da fare&lt;/b&gt;&lt;br /&gt;Potremmo definire ancora altre funzioni non ancora indagate&lt;br /&gt;&lt;br /&gt;s*k(n) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = s(n)*k&lt;br /&gt;s/k(n) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = s(n)/k con k tale che il risultato sia intero&lt;br /&gt;s*k+m(n) &amp;nbsp;&amp;nbsp;&amp;nbsp; = s(n)*k + m&lt;br /&gt;s/k+m(n)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = s(n)/k + m &lt;br /&gt;s^k(m)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = s(n)^k &lt;br /&gt;s^k+m(n)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = s(n)^k + m&lt;br /&gt;&lt;br /&gt;etc...&lt;br /&gt;con k e m interi&lt;br /&gt;&lt;br /&gt;Potreste provare a indagare sulle proprietà dei numeri in base a k e m e sulla sequenza.&lt;br /&gt;&lt;br /&gt;Eccovi anche un algoritmo semplice con PARI/GP (da migliorare eventualmente) con cui un pò studiare le varie casistiche:&lt;br /&gt;&lt;br /&gt;Alq(n,op="+",m=0,k=1) = local(ret=1, str="", str2="");{&lt;br /&gt;&amp;nbsp;str = concat(str,n);&lt;br /&gt;&amp;nbsp;str = concat(str,",");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;i = 0;&lt;br /&gt;&amp;nbsp;retp = n;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;while(ret!= 0,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vec = divisors(n);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l = length(vec);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retp2 = ret;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = sum(i=1, l-1, vec[i] );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( op = "+", ret = ret*k + m; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( op = "-", ret = ret*k - m; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( op = "*", ret = ret*k + m; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( op = "^", ret = ret^k + m; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( retp == ret,&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( retp2 == ret,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retp2 = -1; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( retp2==-1, str=concat(str,ret); str=concat(str," cycle");); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = 0; &amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( retp != ret &amp;amp; retp2 != -1,&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(ret==0,&amp;nbsp;&amp;nbsp; str= concat(str,ret);); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(ret!=0,&amp;nbsp;&amp;nbsp; str= concat(str,ret); str=concat(str,",");); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = ret;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( ret==0 &amp;amp; retp2 != -1, str = concat(str," - len = "); str=concat(str,i));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( ret==0 &amp;amp; i==1 &amp;amp; retp2 != -1, str = concat(str," - perfect number"););&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( ret==0 &amp;amp; i==2 &amp;amp; l &amp;gt; 2 &amp;amp; retp2 != -1, str = concat(str," - amicable number");); /* Not prime number */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( ret==0 &amp;amp; i&amp;gt;2 &amp;amp; retp2 != -1, str = concat(str," - sociable number"););&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;print(str);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ad esempio lanciabile come:&lt;br /&gt;Alq(6)&lt;br /&gt;Alq(12)&lt;br /&gt;Individua i numeri perfetti, amicabili (escludendo i numeri primi) e i socievoli.&lt;br /&gt;&lt;br /&gt;Sui cicli l'algoritmo lo potrete ovviamente migliorare perchè per semplicità quello presentato si arresta solo se due numeri consecutivi sono uguali, ma non individua sequenze ripetute con più di una cifra.&lt;br /&gt;&lt;br /&gt;Ad esempio funziona con Alq(25) poichè si ripete 6, ma non funzionerebbe se si ripetono 4,7,2,4,7,2. Quindi va da voi migliorato. &lt;br /&gt;&lt;br /&gt;Se invece si lancia con altre operazioni si possono ottenere cicli.&lt;br /&gt;Ad esempio: Alq(12,"*",1,1)&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Se si vogliono gestire elevati numeri di cifre, conviene riscrivere il programma con GMP; altrimenti PARI/GP si interrompe laddove non è in grado di proseguire..&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8273046400227761568?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8273046400227761568/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/05/parti-aliquote-e-successioni-aliquote.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8273046400227761568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8273046400227761568'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/05/parti-aliquote-e-successioni-aliquote.html' title='Parti aliquote e successioni aliquote'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-4503880733649118612</id><published>2010-04-24T01:09:00.000-07:00</published><updated>2010-07-01T11:21:43.836-07:00</updated><title type='text'>Numeri ciclici ed un po' magici</title><content type='html'>&lt;b&gt;Numeri ciclici ed un po' magici&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Alcuni numeri hanno una proprietà caratteristica. Prendiamo ad esempio 142.857.&lt;br /&gt;&lt;br /&gt;E' un numero come un altro a prima vista. Ebbene se si moltiplica per un valore si ottiene un numero al cui interno si ripresenta il numero di partenza con cifre nello stesso ordine. &lt;br /&gt;&lt;br /&gt;Se poi a tale risultato si moltiplica ulteriormente, il numero di partenza si ripresenta con cifre shiftate in modo circolare.&lt;br /&gt;&lt;br /&gt;Ecco degli esempi:&lt;br /&gt;&lt;br /&gt;142.857 x 2 = 285.714 142.857 x 5 = 714.285&lt;br /&gt;&lt;br /&gt;142.857 x 3 = 428.571 142.857 x 6 = 857.142&lt;br /&gt;&lt;br /&gt;142.857 x 4 = 571.428 142.857 x 7 = 999.999&lt;br /&gt;&lt;br /&gt;E' facile osservare che le 6 cifre del numero compaiono, tra l’altro nello stesso ordine, anche nei risultati. Moltiplicando il numero magico per 7 si ottiene invece 999.999. &lt;br /&gt;&lt;br /&gt;Disponendo le cifre in cerchio e iniziando a leggere in un punto qualsiasi procedendo in senso orario si ottiene sempre un numero multiplo di 142.857: ecco perché questo viene chiamato numero ciclico. &lt;br /&gt;&lt;br /&gt;Forse avete anche osservato che sommando le due cifre opposte nella disposizione circolare si ottiene sempre 9. &lt;br /&gt;&lt;br /&gt;Ad esempio spezziamo il numero in due parti uguali, e scriviamole incolonnate:&lt;br /&gt;&lt;br /&gt;142&lt;br /&gt;857&lt;br /&gt;&lt;br /&gt;Cosa si nota ? Sommando le cifre in posizione corrispondente, si ottiene sempre 9: 1 + 8 = 4 + 5 = 2 + 7 = 9.&lt;br /&gt;&lt;br /&gt;Ciò vale anche per tutti i multipli, eccetto ovviamente quelli caratteristici dati dal primo generatore e suoi multipli!&lt;br /&gt;&lt;br /&gt;Queste proprietà appartengono a tutti i numeri ciclici. &lt;br /&gt;&lt;br /&gt;Alcuni di essi si possono generare con frazioni periodiche.&lt;br /&gt;&lt;br /&gt;Ad esempio 142.857 è il più piccolo di questi numeri ciclici e si ottiene dividendo 1 per 7 e considerando le prime 6 cifre decimali del periodo. &lt;br /&gt;&lt;br /&gt;Un altro numero di questo genere si ottiene dividendo 1 per 17: &lt;br /&gt;si tratta esattamente di 588.235.294.117.647. &lt;br /&gt;&lt;br /&gt;Dividendo 1 per 97, invece, si ottiene un numero ciclico di ben 96 cifre!&lt;br /&gt;&lt;br /&gt;Un alro modo per generarli è secondo la formuletta C(p)=(b^{p-1}-1)/p&lt;br /&gt;&lt;br /&gt;ove b è la base numerica prescelta e p è il numero primo dato, che non sia un divisore della base. &lt;br /&gt;&lt;br /&gt;Ovviamente non ogni numero primo genera un numero ciclico.&lt;br /&gt;&lt;br /&gt;In sintesi si definisce numero ciclico quel numero di n cifre in base b che ha le seguenti caratteristiche:&lt;br /&gt;1 moltiplicato per un numero da 1 a n, dà come risultato un numero che contiene le stesse cifre del numero di partenza, in ordine &amp;nbsp; traslato&lt;br /&gt;2 moltiplicato per n+1, dà come risultato una sequenza di n cifre b-1 (ovvero b^n-1)&lt;br /&gt;3 sono caratterizzati dall'essere sempre espressi con p - 1 cifre, il che spiega la loro strettissima correlazione con la rappresentazione e quindi la base numerica prescelta&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Alla prox&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-4503880733649118612?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/4503880733649118612/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/numeri-ciclici-ed-un-po-magici.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4503880733649118612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4503880733649118612'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/numeri-ciclici-ed-un-po-magici.html' title='Numeri ciclici ed un po&apos; magici'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-4788113004908825223</id><published>2010-04-18T00:34:00.000-07:00</published><updated>2010-04-18T00:57:28.082-07:00</updated><title type='text'>Teoria dei numeri - Il problema di Riesel e di Sierpinski</title><content type='html'>&lt;b&gt;Il problema di Riesel e il problema di Sierpinski&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Nella teoria dei Numeri si definisce numero di Riesel un valore k dispari tale che, per ogni n, &lt;br /&gt;il termine k*2^n-1 è un numero composto.&lt;br /&gt;&lt;br /&gt;Nel 1956 Hans Riesel dimostrò che esistono infiniti numeri di Riesel, con una tecnica di "insieme ricoprente".&lt;br /&gt;&lt;br /&gt;Un insieme ricoprente è un insieme di numeri primi piccoli tali che ogni termine di una successione sia &lt;br /&gt;divisibile per uno di essi (da qui il nome di "ricoprente").&lt;br /&gt;&lt;br /&gt;In base a tale tecnica Riesel mostrò che 509203 era un numero di Riesel.&lt;br /&gt;&lt;br /&gt;Poichè finora non è stato trovato nessun insieme ricoprente per valori di k inferiori a 509203, si ipotizza&lt;br /&gt;che esso sia il più piccolo numero di Riesel.&lt;br /&gt;&lt;br /&gt;Il "problema di Riesel" è di determinare il più piccolo numero di Riesel.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Esempi&lt;/b&gt;&lt;br /&gt;k=5 non può essere un numero di Riesel, perchè già con n=2 si ottiene che 5*2^2-1=19 è un numero primo.&lt;br /&gt;k=509203 se lo si prova per 10 mila o 1 milione di valori di n non si ottiene un primo; ad esempio di fatti&lt;br /&gt;con PARI/GP si possono scrivere due linee di comando del tipo:&lt;br /&gt;&lt;br /&gt;a=509203&lt;br /&gt;for(i=1,10000, b=a*2^i-1; if(isprime(b)==1,print("prime ",b," for n: ", i);); ); &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Il problema di Sierpinski&lt;/b&gt;&lt;br /&gt;Tale problema è analogo a quello di Riesel. E' definito numero di Sierpinski un numero k dispari, che per ogni n, produce numeri composti k*2^n+1.&lt;br /&gt;&lt;br /&gt;Qual è il più piccolo numero di Sierpinski? Nel 1962 John Selfridge propose come il più piccolo numero di Sierpinski 78557. Per dimostrare che esso è il più piccolo occorre dimostrare che i dispari precedenti non sono numeri di Sierpinski. Finora è stato dimostrato per tutti i numeri eccetto per diciassette di essi. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ricerca algoritmica&lt;/b&gt;&lt;br /&gt;Il progetto Riesel Sieve (analogo a Seventeen oppure Bust), progetto di calcolo distribuito, sta analizzando almeno 75 valori di k minori di 509203, che possono considerarsi PRN ("Probable Riesel's number").&lt;br /&gt;&lt;br /&gt;Un interessante valore è il 659. &lt;br /&gt;&lt;br /&gt;Un algoritmo proponibile in PARI/GP, per entrambi i problemi, che si può ulteriormente ottimizzare, è il seguente da me proposto.&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;*&amp;nbsp; Riesel's Number Research&lt;br /&gt;*&amp;nbsp; Sierpinski's Number Research &lt;br /&gt;*&lt;br /&gt;*&amp;nbsp; Author&amp;nbsp;&amp;nbsp; &amp;nbsp;: Rosario Turco&lt;br /&gt;*&amp;nbsp; Date&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;: 16/04/2010 &lt;br /&gt;*&amp;nbsp; Revision&amp;nbsp;&amp;nbsp; &amp;nbsp;: 1.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;RSL(start=3, end=1001, s=1, n=1000, r=1)=local();{ &lt;br /&gt;&amp;nbsp;if( start%2 == 0, error("inserire uno start dispari"););&lt;br /&gt;&amp;nbsp;i = start;&lt;br /&gt;&amp;nbsp;while(i&lt;end+1,&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSLR(i,s,n,r);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = i+2;&lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;print("start : ", start," end : ", end);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;RSLR(val,s=1,n=1000,r=1)=local(out="",trovato=0); { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(j=s,n,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( r == 1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = (val*2^j) - 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( r == 0,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = (val*2^j) + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( isprime(a) == 1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trovato=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("Nok at n: ", j);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j=n+1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(trovato == 0, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( r == 1, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, "Probable Riesel's number: k=");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( r == 0, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, "Probable Sierpinski's number: k=");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, val);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, " on ");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, n);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, " values ...");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(out);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;end+1,&gt;&lt;/end+1,&gt;&lt;br /&gt;&lt;end+1,&gt;&lt;br /&gt;&lt;b&gt;Riferimenti&lt;/b&gt;&lt;/end+1,&gt;&lt;br /&gt;&lt;end+1,&gt;Wikipedia&lt;/end+1,&gt;&lt;br /&gt;&lt;a href="http://www.seventeenorbust.com/"&gt;&lt;end+1,&gt;http://www.seventeenorbust.com&lt;/end+1,&gt;&lt;/a&gt;&lt;br /&gt;&lt;end+1,&gt;&lt;br /&gt;&lt;/end+1,&gt;&lt;br /&gt;&lt;end+1,&gt;&lt;br /&gt;&lt;i&gt;Alla prox&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/end+1,&gt;&lt;/end+1,&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-4788113004908825223?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/4788113004908825223/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/teoria-dei-numeri-il-problema-di-riesel.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4788113004908825223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4788113004908825223'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/teoria-dei-numeri-il-problema-di-riesel.html' title='Teoria dei numeri - Il problema di Riesel e di Sierpinski'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-4108767088317879979</id><published>2010-04-17T11:25:00.000-07:00</published><updated>2010-04-17T11:30:41.692-07:00</updated><title type='text'>Commenti sui lavori di matematica</title><content type='html'>&lt;b&gt;Commenti sui lavori di Matematica&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Ho letto con attenzione vari commenti lasciati sul sito dell'amico e coautore dott. Michele Nardelli&lt;br /&gt;&lt;a href="http://nardelli.xoom.it/virgiliowizard/commenti"&gt;http://nardelli.xoom.it/virgiliowizard/commenti&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I commenti benevoli si riferivano spesso sia a lavori congiunti che del dott. Nardelli, mio ottimo amico e valido matematico, con un interesse specifico nell'ambito della teoria delle stringhe e della Fisica matematica.&lt;br /&gt;&lt;br /&gt;Ringrazio i lettori, e vi segnalo i tantissimi lavori del dott. Nardelli ed il suo sito&lt;a href="http://nardelli.xoom.it/"&gt; http://nardelli.xoom.it/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Aggiungo anche il sito del prof. Watkins dell'università Exeter&lt;br /&gt;&lt;a href="http://www.secamlocal.ex.ac.uk/people/staff/mrwatkin/zeta/tutorial.htm"&gt;http://www.secamlocal.ex.ac.uk/people/staff/mrwatkin/zeta/tutorial.htm&lt;/a&gt;&lt;br /&gt;su cui sono pubblicati articoli miei, della prof. Colonnese, del dott. Nardelli e del gruppo ERATOSTENE.&lt;br /&gt;&lt;br /&gt;In ultimo vi segnalo articoli presenti sia sul sito &lt;a href="http://www.gruppoeratostene.com/"&gt;www.gruppoeratostene.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;che sul sito Rudi Mathematici &lt;a href="http://www.rudimathematici.com/blocknotes.htm"&gt;http://www.rudimathematici.com/blocknotes.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ed un link del prof. Ignazio Licata (fisico teorico) &lt;br /&gt;&lt;a href="http://www.i-sem.net/profile/ignazio_licata.asp"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: purple; font-family: Times New Roman; font-size: small;"&gt;http://www.i-sem.net/profile/ignazio_licata.asp&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-4108767088317879979?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/4108767088317879979/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/commenti-sui-lavori-di-matematica.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4108767088317879979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4108767088317879979'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/commenti-sui-lavori-di-matematica.html' title='Commenti sui lavori di matematica'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8799864487952239591</id><published>2010-04-14T11:48:00.000-07:00</published><updated>2010-04-18T22:54:41.242-07:00</updated><title type='text'>Teoria dei numeri - Numeri di Keith inversi</title><content type='html'>&lt;b&gt;L'inverso del Repfigit? E' il revRepfigit!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Se i Repfigit sono strani e rari oltre il milione, ancora più strabilianti sono gli inversi. I numeri revRepfigit sono come il 12: la loro sequenza con la stessa tecnica dei Repfigit dà il rovescio di 12 ovvero 21.&lt;br /&gt;&lt;br /&gt;Altri revRepfigit sono ad esempio:&lt;br /&gt;12, 24, 36, 48, 52, 71, 341, 682, 1285, 5532, 8166, 17593, 28421, 74733, 90711, 759664, 901921, 1593583, 4808691, 6615651, 6738984, 8366363, 8422611, 26435142, 54734431, 57133931, 79112422, 351247542, 428899438, 489044741, 578989902, 3207761244, 4156222103, 5426705064, 5785766973, 6336657062, 48980740972, 51149725354, 83626284302, 94183600081, 98665175305, 1935391095868, 6002181268035, 6334708806271, 12348924235856, 27488180694681, 76365591939888, 309217509306732, 352062080376812, 714692062325732, 723735537269331, 2437358882180001, 6792079280704301, 62244424802562056, 203414193894268461, 217049132946408803, 415499563488189604, 561624665953167171, ... (Sloane's A097060; A. Vrba, pers. comm., Dec. 28, 2006). &lt;br /&gt;&lt;br /&gt;Vedi anche &lt;a href="http://mathworld.wolfram.com/KeithNumber.html"&gt;http://mathworld.wolfram.com/KeithNumber.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ok. Le congetture da verificare sono almeno due (vedi blog precedente); ma le curiosità sono molte di più.&lt;br /&gt;&lt;br /&gt;Ad esempio: esiste una proprietà di qualche tipo che ci permette di dire che un numero intero è Repfigit o un revRepfigit?Al momento occorre farsi la sequenza ... molti studiosi cercano la proprietà.&lt;br /&gt;&lt;br /&gt;Seconda curiosità: esiste un modo per contare tali numeri in un intervallo da 1 a N? Una sorta di pi(N)? &lt;br /&gt;&lt;br /&gt;Altra curiosità. A che possono servire?.&lt;br /&gt;&lt;br /&gt;Nel frattempo che meditate, ho apportato una modifica all'algoritmo già presentato precedentemente in modo da permettere di gestire sia Repfigit che revRepfigit. Ottimizzazioni ulteriori sono possibili: le lascio ai volenterosi!&amp;nbsp; Se riportate il tutto in linguaggio GMP e usate un bel dual core avete speranze di trovare nuovi record di Repfigit a 34 e oltre cifre ...&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;*&amp;nbsp;&amp;nbsp; Keith's numbers Research (Repfigit and RevRepfigit)&lt;br /&gt;*&amp;nbsp;&amp;nbsp; R. Turco&lt;br /&gt;*&amp;nbsp;&amp;nbsp; rep=1 if I search Repfigit &lt;br /&gt;*&amp;nbsp;&amp;nbsp; rep=0 if I search RevRepfigit&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;KNRA(start=10, end=10000000, rep=1)=local();{ &lt;br /&gt;&lt;br /&gt;&amp;nbsp;for(i=start,end,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KNR(i,rep);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;KNR(val,rep)=local(value=0,p=0,s="",str="", out="", m=0, j=0, s0=0, s1=0, s2=0, trovato=0); { &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s = concat(s,val);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m = length(s);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyW=Vecsmall(s);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyW2=Vecsmall(s);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v=vector(m);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v2=vector(m);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reverse Vector */ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyW2=RevVect(s,m); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* I calculate the sums */&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( j=1,m,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[j] = MyW[j]-48;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v2[j] = MyW2[j]-48;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, v[j] );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, "," );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str = concat(str, v2[j]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s1 = s1 + v[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, s1 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, "," );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[1]=s1; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I calculate the first value of the vector.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is important in the revRepfigit &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value=GetValStr(s,m);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* I get the value of the reverse vector */&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s2=GetValStr(str,m);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p=1;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* I search the Repfigit */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( rep == 1,&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( trovato == 0 &amp;amp; s1&lt;val+1,&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( p&amp;gt;m, p=1;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s1 = 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( j=1,m,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s1 = s1 + v[j]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, s1 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( s1 == val, print("Repfigit trovato : ", val, " len : ", m); trovato = 1; print(out););&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( s1 != val, out = concat( out, "," ););&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[p] = s1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RevRepfigit */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( rep == 0 &amp;amp; (10 &amp;lt; s2) &amp;amp; (value%10)!=0,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( trovato == 0 &amp;amp; s1&lt;s2+1,&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( p&amp;gt;m, p=1;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s1 = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( j=1,m,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s1 = s1 + v[j]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, s1 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( s2 == s1, print("revRepfigit trovato : ", val, " len : ", m); trovato = 1; print(out);); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( s1 != val, out = concat( out, "," ););&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[p] = s1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;GetValStr(str,len)=local(val=0,weight=0);{ &lt;br /&gt;&amp;nbsp;MyStr=Vecsmall(str);&lt;br /&gt;&amp;nbsp;weight=len-1; &lt;br /&gt;&amp;nbsp;for(k=1,len,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val = (MyStr[k]-48)*(10^(weight)) + val;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; weight--; &lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;return(val);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;RevVect(str,len)=local(k=0,j=0);{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyWA=Vecsmall(str);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyWB=Vecsmall(str);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; k=len;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( k&amp;gt;0,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyWB[k]=MyWA[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; k--;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(MyWB);&lt;br /&gt;}&lt;/s2+1,&gt;&lt;/val+1,&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; &lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8799864487952239591?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8799864487952239591/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/teoria-dei-numeri-numeri-di-keith.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8799864487952239591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8799864487952239591'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/teoria-dei-numeri-numeri-di-keith.html' title='Teoria dei numeri - Numeri di Keith inversi'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-2704548913522441127</id><published>2010-04-12T11:38:00.000-07:00</published><updated>2010-04-12T13:28:31.487-07:00</updated><title type='text'>Setacciatore di Repfigit</title><content type='html'>&lt;b&gt;Algoritmo per i numeri di Keith&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Vi presentiamo un algoritmo piuttosto veloce, per la ricerca dei numeri Repfigit o numeri di Keith, che occupa poca memoria grazie ad una semplice tecnica di shifting ciclico su un vettore di dimensione pari agli m digit, che costituiscono un numero. Con esso potrete ritrovare tutti i valori oggi noti e tentare di spingervi sui Repfigit oltre i fatidici 34 digit ... vi servirà un pò di tempo però.&lt;br /&gt;&lt;br /&gt;L'algoritmo eventualmente potrete modificarvelo anche per stampare su file i risultati. L'ho proposto anche su Wikipedia.&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;*&amp;nbsp;&amp;nbsp; Keith's numbers Research (Repfigit) - R. Turco&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;KNRA(start=10, end=100000)=local();{ &lt;br /&gt;&amp;nbsp;for(i=start,end,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KNR(i);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;KNR(i)=local(p=0,s="",out="",m=0,j=0, s0=0,s1=0,s2=0, trovato=0); { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s = concat(s,i);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m = length(s);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyW=Vecsmall(s);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v=vector(m);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( j=1,m,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[j] = MyW[j]-48;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, v[j] );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, "," );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s1 = s1 + v[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, s1 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, "," );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[1]=s1; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( trovato == 0 '&amp;amp;' s1 '&amp;lt;' i+1&lt;i+1,&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( p&amp;gt;m, p=1;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s1 = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( j=1,m,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s1 = s1 + v[j]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = concat( out, s1 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( s1 == i, print("Esempio trovato : ", i, " len : ", m); trovato = 1; print(out););&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( s1 != i, out = concat( out, "," ););&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v[p] = s1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/i+1,&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-2704548913522441127?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/2704548913522441127/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/setacciatore-di-repfigit.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2704548913522441127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/2704548913522441127'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/setacciatore-di-repfigit.html' title='Setacciatore di Repfigit'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-4272095308562782543</id><published>2010-04-11T02:01:00.000-07:00</published><updated>2010-04-17T09:56:13.385-07:00</updated><title type='text'>Teoria dei numeri - Numeri Repfigit o numeri di Keith</title><content type='html'>&lt;b&gt;Teoria dei numeri - Numeri Repfigit o numeri di Keith&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Il nome deriva da "replicating Fibonacci digit" ed indica i "numeri riproduttori di Fibonacci". &lt;br /&gt;&lt;br /&gt;Si definisce &lt;i&gt;numero repfigit &lt;/i&gt;o &lt;i&gt;numero di Keith&lt;/i&gt; un numero n intero, costituito da m digit d1d2...dm, che &lt;br /&gt;si rigenera all'interno di una sequenza del tipo:&lt;br /&gt;&lt;br /&gt;d1, d2, ..., dm, s1=d1+d2+d3+...+dm, s2=s1+d2+...+dm, s3=s2+s1+d3+...+dm, ... &lt;br /&gt;&lt;br /&gt;Generalizzando si consideri la sequenza definita da: &lt;br /&gt;&lt;br /&gt;sk = dk (k = 1, 2, …, m) e &lt;br /&gt;sk= sum(i=1,m,sk-i) (k&amp;gt;m). &lt;br /&gt;&lt;br /&gt;Se sk=n per qualche k, allora n è un numero riproduttore di Fibonacci o numero di Keith o numero repfigit.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Esempi di repfigit&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;n=47 m=2 digit&lt;br /&gt;4,7,11,18, 29, 47&lt;br /&gt;&lt;br /&gt;n=1537 m=4 digit&lt;br /&gt;1, 5, 3, 7, 16, 31, 57, 111, 215, 414, 797, 1537&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E' nel 1987, che Michael Keith ha introdotto il concetto dei numeri riproduttori di Fibonacci. &lt;br /&gt;&lt;br /&gt;Nel 1987 il numero repfigit più grande conosciuto era un numero di 7 cifre, 7.913.837. Nel novembre 1989, fu scoperto 44.121.607 e nello stesso anno il dottor Googol trovò che i numeri 129.572.008 e 251.133.297 sono repfigit nell'intervallo definito tra 100 e 1.000 milioni. Oggi sono stati scoperti numeri di questo tipo molto più grandi.&lt;br /&gt;&lt;br /&gt;Nella tab. seguente i numeri riproduttori di Fibonacci fino a m=5 cifre&lt;br /&gt;&lt;br /&gt;m=2 &amp;nbsp;&amp;nbsp;&amp;nbsp; 14 &amp;nbsp;&amp;nbsp;&amp;nbsp; 19 &amp;nbsp;&amp;nbsp;&amp;nbsp; 28 &amp;nbsp;&amp;nbsp;&amp;nbsp; 47 &amp;nbsp;&amp;nbsp;&amp;nbsp; 61 &amp;nbsp;&amp;nbsp;&amp;nbsp; 75 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;m=3 &amp;nbsp;&amp;nbsp;&amp;nbsp; 197 &amp;nbsp;&amp;nbsp;&amp;nbsp; 742 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;m=4 &amp;nbsp;&amp;nbsp;&amp;nbsp; 1104 &amp;nbsp;&amp;nbsp;&amp;nbsp; 1537 &amp;nbsp;&amp;nbsp;&amp;nbsp; 2208 &amp;nbsp;&amp;nbsp;&amp;nbsp; 2580 &amp;nbsp;&amp;nbsp;&amp;nbsp; 3684 &amp;nbsp;&amp;nbsp;&amp;nbsp; 4788 &amp;nbsp;&amp;nbsp;&amp;nbsp; 7385 &amp;nbsp;&amp;nbsp;&amp;nbsp; 7647 &amp;nbsp;&amp;nbsp;&amp;nbsp; 7909&lt;br /&gt;m=5 &amp;nbsp;&amp;nbsp;&amp;nbsp; 31331 &amp;nbsp;&amp;nbsp;&amp;nbsp; 34285 &amp;nbsp;&amp;nbsp;&amp;nbsp; 34348 &amp;nbsp;&amp;nbsp;&amp;nbsp; 55604 &amp;nbsp;&amp;nbsp;&amp;nbsp; 62662 &amp;nbsp;&amp;nbsp;&amp;nbsp; 86935 &amp;nbsp;&amp;nbsp;&amp;nbsp; 93993 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Congettura di Keith&lt;/b&gt;&lt;br /&gt;I numeri repfigit sono infiniti.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Altro problema&lt;/b&gt;&lt;br /&gt;Esistono repfigit con m&amp;gt;34?&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Riferimenti &lt;/b&gt;&lt;br /&gt;La Magia dei numeri – Clifford Pickover – Sfide Matematiche&lt;br /&gt;&lt;a href="http://planetmath.org/encyclopedia/KeithNumber.html"&gt;http://planetmath.org/encyclopedia/KeithNumber.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://it.wikipedia.org/wiki/Successione_di_Fibonacci#Voci_correlate"&gt;http://it.wikipedia.org/wiki/Successione_di_Fibonacci#Voci_correlate&lt;/a&gt; (dove l'autore ha contribuito)&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-4272095308562782543?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/4272095308562782543/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/teoria-dei-numeri-numeri-repfigit-o.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4272095308562782543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4272095308562782543'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/teoria-dei-numeri-numeri-repfigit-o.html' title='Teoria dei numeri - Numeri Repfigit o numeri di Keith'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-8619277129034518419</id><published>2010-04-03T01:37:00.000-07:00</published><updated>2010-04-04T10:27:07.663-07:00</updated><title type='text'>Teoria dei numeri - Bateman</title><content type='html'>&lt;b&gt;Teoria dei numeri - Bateman, zeta di Fibonacci e connessioni con la teoria delle stringhe&lt;/b&gt;&lt;br /&gt;&lt;b&gt;- La politica delle Cicale e delle formiche. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Siamo a Pasqua 2010, speriamo che sia un anno "buono" e benevolo per gli Informatici e per tanti lavoratori a rischio del posto di lavoro, che negli anni si sono sacrificati anche all'estero.&lt;br /&gt;&lt;br /&gt;L'informatica non è un settore regolarizzato e specializzato come altri; ad esempio in edilizia un palazzo non lo può progettare ed eseguire uno qualsiasi! Nemmeno il geometra che, però, se iscritto all'albo può effettuare determinati tipi di lavori.&lt;br /&gt;&lt;br /&gt;Oggi la moda di determinate aziende è di esternalizzare l'Information Technology, liberarsi degli informatici, perchè un costo per l'azienda; sembra quasi che quando ne hanno bisogno possano andare&amp;nbsp; al supermercato a procurarseli (la commodity) acquistandosi anche prodotti buy, di moda e chiavi in mano (non ho mai conosciuto un prodotto buy che non si dovesse poi customizzare oppure che vada perfettamente d'accordo con i processi in essere dell'azienda).&lt;br /&gt;&lt;br /&gt;Per i costi è più facile esternalizzare gli informatici verso società che in qualche modo negli anni tra mobilità, prepensionamenti, cassa integrazione e licenziamenti farà la "parte sporca". Che futuro per per tante famiglie italiane dal nord al sud? E' più facile distruggere che costruire in italia ...&lt;br /&gt;&lt;br /&gt;Di solito accade che le forniture, a bassi costi, vengono fatte da ditte esterne con molti giovani, senza neanche un anno di lavoro oppure la gestione dei call center viene remotizzata, in un angolo qualsiasi della terra (India, Pakistan, Tunisia, Libia, etc) con scarsa qualità, fidelizzazione, sicurezza e riservatezza sulla&amp;nbsp; fonia (voce) e i dati (fax, contratti etc). La mobilità del lavoro e non del lavoratore è un'arma a doppio taglio, che all alunga provoca disastri. &lt;br /&gt;&lt;br /&gt;Non è la stessa cosa tra una situazione in cui il software viene fatto da un ragazzino, con contratto a progetto e assoldato per pochi spiccioli (e su cui spesso non viene richiesto nemmeno il certificato penale) o da un professionista del software (diplomato o laureato) e conoscitore delle esigenze della propria azienda. I dati trattati e gli strumenti, le metodologie ed il know-how devono essere nelle mani dell'azienda. Non esiste azienda senza informatica, ma soprattutto non esiste una azienda senza una informatica adatta a sè, cioè propria.&lt;br /&gt;&lt;br /&gt;Il ragazzino bravo può fare sicuramente programmi per piccoli uffici, ma si hanno dei limiti per i sistemi enterprise end to end: non conosce bene tecnologie, metodologie (best practices), sicurezza e riservatezza, la necessaria qualità, i necessari test; ma soprattutto non conosce le logiche dei processi di business che sono legate all'azienda da almeno un ventennio, che sono quelle che le hanno permesso il prestigio raggiunto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E' come se il software per l'analisi della staticità della vostro palazzo o di un ponte fosse affidato ad un ragazzino; oppure pensate al software biomedico che deve far funzionare le macchine per le operazioni a cui tutti noi oggi siamo abituati (perchè automatizzate e rese semplici) come cataratte, cuore o a tutto quello che deve garantire sicurezza umana (shuttle, computer, satelliti, sistemi di controllo). Per cui stiamo parlando di tempo di progettazione adeguati, qualità del software, sicurezza e riservatezza del personale, metodologia di progettazione, esecuzione di test di sistema, professionalità e skill. &lt;br /&gt;&lt;br /&gt;Lo stesso dicasi per attività remote, complicate anche dalla differenza di lingua dove il costo tenderà comunque ad aumentare, perchè il processo di un progetto non può più essere light. Se è light ogni anomalia diventa un requisito non espresso da pagare, mentre se si scrivono tutti i dettagli possibili, i tempi di progetto e i costi aumentano.&lt;br /&gt;&lt;br /&gt;Pensate che già attualmente i dati di traffico nazionale o internazionali compresi i vostri contratti ADSL, dei telefonini, delle linee, dei fax etc potrebbero essere gestiti, da persone a contratto a progetto o anche da sconosciuti remoti (In Tunisia, Libia, etc) dell'oriente o dei paesi arabi o di chissà quale paese.&lt;br /&gt;&lt;br /&gt;I dati delle cause penali e civili o delle prove dei magistrati, procuratori e della polizia, se gestiti da ditte esterne, i cui dipendenti a contratto a progetto non hanno presentato nemmeno il certificato penale, potenzialmente potrebbero essere sotto gli occhi o le mani di persone poco raccomandabili.&lt;br /&gt;&lt;br /&gt;Il remotizzare, poi, le attività (di supporto delle linee, ADSL, dei PC, call center etc) significa dipendere dall'estero, come la benzina, l'energia elettrica etc. Oggi risparmieremo dei soldi, poi all'innalzarsi del tenore di vita dei paesi poveri aumenterà il costo, per conseguenza, mentre sarà sparito dal nostro paese la figura professionale dell'informatico ...&lt;br /&gt;&lt;br /&gt;Qua il problema non è l'eta di chi fa l'informatica, ma il know-how specifico, la regolamentazione dell'informatica e di chi la fa, per i diversi settori strategici: telecomunicazioni, giustizia, polizia, settori medici, settori di controllo, etc.&lt;br /&gt;&lt;br /&gt;Lo stesso titolo di studio, che dovrebbe comportare livelli di conoscenza e potenzialità diverse, non è ben utilizzato in italia e nelle aziende; nè è a priori incanalato in un adeguato sistema di insegnamento e di selezione sul mercato del lavoro ...Oggi come oggi lo studio non paga, non significa meritocrazia, non significa riuscire a contribuire ad avere il proprio paese tra i più tecnologicamente avanzati ...&lt;br /&gt;&lt;br /&gt;Vi piacerebbe tutto questo? Eppure sta succedendo sotto i vostri occhi ... L'informatica, cari italiani, vi costerà, tra qualche anno, molto di più di oggi perchè oggi è bistrattata, resa inutile da strategie e leggi che poco hanno a che fare con la creazione di unn volano fonte di ripresa economica, e che hanno molto a che fare con la logica degli utili da restituire alle banche e agli azionisti.&amp;nbsp; E soprattutto intere generazioni saranno distolte su altri settori se più redditizi: lo troveremo un informatico italiano in Italia? Forse siamo l'ultima razza, l'ultimo dei moicani ... Anche qui c'è una principessa Pocahontas da immolare sull'altare dell'avidità. Si ragiona solo con i numeri ? E' corretto nell'immediato ma, poi, è fallimentare alla lunga: ma per i manager è meglio l'uovo ricco oggi, che la gallina domani! E' questa è la differenza tra le cicale e le formiche.&lt;br /&gt;&lt;br /&gt;Nel frattempo che medidate sulle miserie umane, indotte da leggi e politiche senza senso e all'italiana, in un'era dove tutto è automatizzato e serve l'informatica per questo, dove la privacy e la sicurezza sono determinanti e ciecamente si creano falle di sicurezza di gestione dell'informatica, vi presentiamo la congettura di Bateman ed un articolo legato alla zeta di Fibonacci.&lt;br /&gt;&lt;br /&gt;Eccovi i link:&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Bateman.pdf"&gt;http://www.gruppoeratostene.com/articoli/Bateman.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In più vi segnaliamo l'articolo che fornisce una connessione tra la zeta di Fibonacci e la teoria delle stringhe:&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Fibonacci%27s%20zeta%20function.pdf"&gt;http://www.gruppoeratostene.com/articoli/Fibonacci%27s%20zeta%20function.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un augurio di Buona Pasqua.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ZpVWqYMbyjc/S7b-R3FEL_I/AAAAAAAAACY/jFenQ2aDW5E/s1600/images.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ZpVWqYMbyjc/S7b-R3FEL_I/AAAAAAAAACY/jFenQ2aDW5E/s320/images.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-8619277129034518419?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/8619277129034518419/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/teoria-dei-numeri-andrica-cramer.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8619277129034518419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/8619277129034518419'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/04/teoria-dei-numeri-andrica-cramer.html' title='Teoria dei numeri - Bateman'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ZpVWqYMbyjc/S7b-R3FEL_I/AAAAAAAAACY/jFenQ2aDW5E/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-155967988188603341</id><published>2010-03-04T13:49:00.000-08:00</published><updated>2010-03-07T03:27:40.751-08:00</updated><title type='text'>L'infinito, Andrica, Cramer, la gravità ...</title><content type='html'>Piace a chiunque filosofeggiare sull'infinito, sulla correttezza della matematica o meno.&lt;br /&gt;&lt;br /&gt;L'infinito e l'infinitesimo non sono dei numeri ma dei concetti. L'infinito viene considerato come un NaN="Not a Number" in qualsiasi linguaggio di programmazione ed ora anche in matematica. L'infinitesimo?&lt;br /&gt;Lo stesso: è il più piccolo numero reale (più esattamente razionale o irrazionale) rispetto a qualsiasi altro numero che stiamo trattando nel nostro contesto.&lt;br /&gt;&lt;br /&gt;Eppure essi portano a delle contraddizioni. I limiti, le derivate, gli integrali e le serie sono basati su questi concetti di infinito ed infinitesimo, che furono ideati tra il '600 e il '700, quando molte altre cose non erano state rigorosamente definite e dimostrate. &lt;br /&gt;&lt;br /&gt;Eulero trattava l'infinito come una quantità finita e arrivava stupendamente a risultati validi. In realtà infinito e infinitesimo sono concetti risalenti ai greci quando Euclide sosteneva che "la parte è più piccola del tutto". Gli arabi "sopravvalutarono" le cose intendendo che il "tutto" fosse l'1 e la "parte" le sue frazioni. Oggi è nata una parte della matematica chiamata "Analisi non standard" dovuta a Robinson (1966).&lt;br /&gt;&lt;br /&gt;Un buon articolo è al link: &lt;a href="http://www.gruppoeratostene.com/articoli/ANS.pdf"&gt;http://www.gruppoeratostene.com/articoli/ANS.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esistono congetture sottovalutate della Teoria dei Numeri che se dimostrate, producono un "effetto domino"&amp;nbsp; di dimostrazione a catena. Una di questa è la congettura di Andrica, che se ben impostata, dimostra rapidamente anche la congettura di Cramer. Buoni link sono:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Andrica2.pdf"&gt;http://www.gruppoeratostene.com/articoli/Andrica2.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Cramer.pdf"&gt;http://www.gruppoeratostene.com/articoli/Cramer.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La congettura di Andrica fa nascere, inaspettatamente, anche un'altra teoria:"Due numeri primi consecutivi, ad eccezione ad esempio di numeri primi come 23 e 29, se appartengono a intervalli quadratici distinti I = [n^2, (n+k)^2], con k maggiore di 1, la loro differenza D non è mai sia pari che multiplo di 3 (ovvero D=6k con k&amp;gt;1). Poichè ciò è vero la congettura di Andrica è vera (la differenza delle radici quadrate di due numeri primi consecutivi è sempre minore di 1); il che comporta che R(p), il rapporto di Cramer-Shank, è minore di 1.&lt;br /&gt;&lt;br /&gt;Oggi la gravità è un altro tema importante. Il tema dell'anti-gravità se ben sfruttato e studiato potrebbe aprire nuove aspettative in campo spaziale per la creazione di propulsioni nuove, oppure a immaginare "scudi antigravitazionali" per la terra, per respingere masse meteoritiche minacciose o altro. Ammesso che si arrivi a forze in gioco tali da avere una tale fattibilità.&lt;br /&gt;&lt;br /&gt;La gravità è sempre stata un tema di studio e di discussione e poichè deve essere valida sia nel mondo macroscopico e cosmologico che nel mondo microscopico e della quantistica, allora deve esistere un modello unificatrice della relatività e della quantistica che contenga anche la gravità. La teoria di Burkhard Heim oggi ha un grande interesse, tale da rivaleggiare anche con la teoria delle stringhe.&lt;br /&gt;&lt;br /&gt;Un buon articolo è al link:&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Heim.pdf"&gt;http://www.gruppoeratostene.com/articoli/Heim.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alla prox&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-155967988188603341?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/155967988188603341/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/03/linfinito-andrica-cramer-la-gravita.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/155967988188603341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/155967988188603341'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/03/linfinito-andrica-cramer-la-gravita.html' title='L&apos;infinito, Andrica, Cramer, la gravità ...'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-6772820383299479150</id><published>2010-02-06T11:36:00.000-08:00</published><updated>2010-02-06T11:38:46.126-08:00</updated><title type='text'>La congettura EUTF</title><content type='html'>&lt;b&gt;La congettura EUTF&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Il problema della ricerca delle soluzioni intere di una equazione a più variabili, tutte dello stesso grado n, è&lt;br /&gt;un problema classico, che coinvolge le equazioni diofantee, l'ultimo Teorema di Fermat etc.&lt;br /&gt;&lt;br /&gt;L'Ultimo Teorema di Fermat (UTF) afferma che l'equazione x ^ n + y ^ n = c ^ n, con n&amp;gt;2, non ammette&lt;br /&gt;soluzioni intere .&lt;br /&gt;&lt;br /&gt;Una possibile estensione dell UTF potrebbe essere la Congettura EUTF e da dimostrare:&lt;br /&gt;&lt;br /&gt;Congettura EUTF&lt;br /&gt;"L' equazione x1^n + x2^n + x3^n + +xk ^n = c ^n&amp;nbsp; ammette sempre soluzioni intere se e solo se n = k".&lt;br /&gt;&lt;br /&gt;La congettura ipotizza che si otterrebbero sempre soluzioni intere se il numero di variabili (o dimensioni) è&lt;br /&gt;uguale al grado n dell'equazione.&lt;br /&gt;&lt;br /&gt;Il nome EUTF deriva dal fatto che la congettura rappresenta una estensione dell'UTF; in particolare se è vera la congettura EUTF, di conseguenza, è vero anche l'UTF, già dimostrato da Andrew Wiles; l'EUTF sarebbe, in altri termini, un ulteriore percorso dimostrativo dell UTF.&lt;br /&gt;&lt;br /&gt;Nell'articolo al link&amp;nbsp;&amp;nbsp;&lt;a href="http://www.gruppoeratostene.com/articoli/Eqrt.pdf"&gt; http://www.gruppoeratostene.com/articoli/Eqrt.pdf&lt;/a&gt;&amp;nbsp;&amp;nbsp; sono mostrate le evidenze e gli eventuali percorsi di dimostrazione dell'EUTF.&lt;br /&gt;&lt;br /&gt;Se qualche lettore vuole cimentrasi sulla dimostrazione ... è il benvenuto.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-6772820383299479150?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/6772820383299479150/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/02/la-congettura-eutf.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6772820383299479150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/6772820383299479150'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/02/la-congettura-eutf.html' title='La congettura EUTF'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-538997802473937649</id><published>2010-01-23T10:43:00.000-08:00</published><updated>2010-01-24T03:29:02.074-08:00</updated><title type='text'>La zeta di Fibonacci</title><content type='html'>&lt;b&gt;La zeta di Fibonacci&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Fra le serie di grosso interesse non c'è solo la zeta di Riemann. In realtà è possibile studiare qualsiasi serie inverso di determinati valori numerici generabili con una formula. Se i valori generabili sono i numeri di Fibonacci, allora traslando il tutto nel piano complesso, possiamo lavorare con la zeta di Fibonacci, definita come:&lt;br /&gt;&lt;br /&gt;F(s) = suminf(k=1, 1.0/(fibonacci(k)^s))&lt;br /&gt;&lt;br /&gt;Tale serie è di interesse sia per indagare nuovi metodi, sia per la sua somiglianza alla zeta di Riemann.&lt;br /&gt;&lt;br /&gt;Essa è oggi studiata soprattutto nel mondo orientale; ed è difficile trovare su INTERNET materiale e informazioni su tale argomento, se non su libri da acquistare o su articoli tecnici riservati e a pagamento.&lt;br /&gt;&lt;br /&gt;Un articolo libero per farvi rendere conto della problematica è al link:&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/ZFRT.pdf"&gt;http://www.gruppoeratostene.com/articoli/ZFRT.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Buona lettura.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-538997802473937649?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/538997802473937649/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/la-zeta-di-fibonacci.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/538997802473937649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/538997802473937649'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/la-zeta-di-fibonacci.html' title='La zeta di Fibonacci'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-3176765544715514307</id><published>2010-01-20T13:16:00.000-08:00</published><updated>2010-01-20T13:17:03.381-08:00</updated><title type='text'>Guazzabugli palindromi</title><content type='html'>&lt;b&gt;Guazzabugli palindromi&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sia a = (10^n+1)^k, con n&amp;gt;0 e k&amp;gt;0&lt;br /&gt;&lt;br /&gt;I quesiti che ci poniamo sono:&lt;br /&gt;&lt;br /&gt;1 che tipo di numero è a per ogni n e k?&lt;br /&gt;2 quale è il numero di cifre nc che si ottiene?&lt;br /&gt;3 nc dipende da n o da k?&lt;br /&gt;4 quanto vale "a" senza fare calcoli, esiste&lt;br /&gt;&amp;nbsp; una regola?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un metodo di indagine è quello numerico che aiuta subito a farsi delle idee. Per cui scriviamo qualche &lt;br /&gt;riga di comando su PARI/GP del tipo: &lt;br /&gt;&lt;br /&gt;k=1&lt;br /&gt;for(n=1,4,a=(10^n+1)^k;if(isprime(a)==1,print1("Yes"));print(a));&lt;br /&gt;&lt;br /&gt;poi variamo k e vediamo cosa otteniamo ripetendo le righe precedenti.&lt;br /&gt;&lt;br /&gt;Scopriamo subito che possiamo rispondere alla prima domanda che possiamo ottenere numeri palindromi (non per tutti i valori di k) e non sempre numeri primi.&lt;br /&gt;&lt;br /&gt;Un numero palindromo è un numero la cui metà è una versione riflessa rispetto ad un asse verticale. Se ad esempio scriviamo 10 e lo ribaltiamo in 01 e mettiamo insieme le cose otteniamo 1001 che è un numero palindromo.&lt;br /&gt;&lt;br /&gt;Se usiamo la forma generatrice precedente per k=1 otteniamo:&lt;br /&gt;11&lt;br /&gt;101&lt;br /&gt;1001&lt;br /&gt;10001&lt;br /&gt;&lt;br /&gt;E' n o k da cui dipende il numero di cifre nc? Nel seguito intendiamo con nc il valore del numero di cifre del primo numero che otterremo con n=1 e k fissato.&lt;br /&gt;&lt;br /&gt;Ad esempio se poniamo k=2 e facciamo sempre variare n nel for tra 1 e 4 ci accorgiamo che dipende da k: nc = k+1.&lt;br /&gt;&lt;br /&gt;Per k=2 otteniamo:&lt;br /&gt;121&lt;br /&gt;10201&lt;br /&gt;1002001&lt;br /&gt;100020001&lt;br /&gt;&lt;br /&gt;121, il primo numero, è di nc=k+1=3 cifre difatti.&lt;br /&gt;&lt;br /&gt;Per k=3 otteniamo:&lt;br /&gt;1331&lt;br /&gt;1030301&lt;br /&gt;1003003001&lt;br /&gt;1000300030001&lt;br /&gt;&lt;br /&gt;Per k=4 otteniamo:&lt;br /&gt;14641&lt;br /&gt;104060401&lt;br /&gt;1004006004001&lt;br /&gt;10004000600040001&lt;br /&gt;&lt;br /&gt;Per k=5 otteniamo:&lt;br /&gt;161051&lt;br /&gt;10510100501&lt;br /&gt;1005010010005001&lt;br /&gt;100050010001000050001&lt;br /&gt;&lt;br /&gt;Da qui vediamo che la "palindromia" viene meno in alcuni casi a partire da&amp;nbsp; k&amp;gt;4. Se nc è pari non c'è un valore centrale rispetto al quale c'è la riflessione. Se nc è dispari esiste un valore centrale o pivot.&lt;br /&gt;&lt;br /&gt;Alcune regole che possiamo fissare sono le seguenti:&lt;br /&gt;&lt;br /&gt;A) agli estremi esiste sia un 1 a destra che un 1 a sinistra. &lt;br /&gt;&lt;br /&gt;B) il gruppo di zeri che appaiono sono n-1 ed il gruppo si ripete per ogni cifra non nulla per intervallarle. Se n=1 non ci sono zeri.&lt;br /&gt;&lt;br /&gt;C) esiste una regola per passare dal numero ottenuto con n=1 e k=b al numero con n=1 k=b+1&amp;nbsp; in particolare si sommano le cifre del numero con n=1 e k=b aggiungendo alla fine un 1 a destra e sinistra&lt;br /&gt;&lt;br /&gt;&amp;nbsp; esempio n=1 e k=3&lt;br /&gt;&amp;nbsp; 1 3 3 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp; dalla destra:&lt;br /&gt;&amp;nbsp; 3+1=4&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 3+3=6&lt;br /&gt;&amp;nbsp; 1+3=4&lt;br /&gt;&lt;br /&gt;&amp;nbsp; numero ricavato:&lt;br /&gt;&amp;nbsp; 1&amp;nbsp; 4&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 4&amp;nbsp; 1&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;D) esiste una regola per passare dal numero ottenuto con n=1 e k=b al numero con n=2 k=b&lt;br /&gt;&amp;nbsp; in particolare si aggiungono zeri in quantità pari a n-1&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Esempio:&lt;br /&gt;&amp;nbsp; numero ricavato per n=1 e k=3&lt;br /&gt;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 1 0 4 0 6 0 4 0 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Esempi più complessi&lt;br /&gt;&lt;br /&gt;&amp;nbsp; n=1 k=4&lt;br /&gt;&amp;nbsp; 1 4 6 4 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp; n=1 k=5&lt;br /&gt;&amp;nbsp; Da destra è:&lt;br /&gt;&amp;nbsp; 4+1=5&lt;br /&gt;&amp;nbsp; 6+4=10 0 si scrive e si riporta 1&lt;br /&gt;&amp;nbsp; 4+6=10 0 questa somma non si fa perchè nel caso nc dispari il pivot si somma una sola volta&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 1+4+1 il +1 è il resto del 10 precedente&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 1 6&amp;nbsp;&amp;nbsp; 1 0&amp;nbsp;&amp;nbsp; 5&amp;nbsp; 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Per n=1 e k=6&lt;br /&gt;&amp;nbsp; 5+1=6 &lt;br /&gt;&amp;nbsp; 5+0=5&lt;br /&gt;&amp;nbsp; 1+0=1&lt;br /&gt;&amp;nbsp; 6+1=7&lt;br /&gt;&amp;nbsp; 1+6=7&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 1&amp;nbsp; 7&amp;nbsp; 7&amp;nbsp; 1&amp;nbsp; 5&amp;nbsp; 6&amp;nbsp; 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Per n=1 e k=7&lt;br /&gt;&amp;nbsp; 6+1=7&lt;br /&gt;&amp;nbsp; 5+6=11 1 si scrive e 1 di riporto&lt;br /&gt;&amp;nbsp; 1+5+1=7&lt;br /&gt;&amp;nbsp; 7+1=8&lt;br /&gt;&amp;nbsp; 7+7=14 4 si scrive e 1 di riporto&lt;br /&gt;&amp;nbsp; 1+7+1=9&lt;br /&gt;&lt;br /&gt;1 9 4 8 7 1 7 1&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Convinti?&lt;br /&gt;&lt;br /&gt;Se vogliamo poi vedere quali sono numeri primi, nel caso che dobbiamo lavorare su molti numeri, allora vi consiglio di farli stampare prima su file da PARI/GP e poi usare WinPFGW.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox.&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-3176765544715514307?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/3176765544715514307/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/guazzabugli-palindromi.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3176765544715514307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3176765544715514307'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/guazzabugli-palindromi.html' title='Guazzabugli palindromi'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1851691443271734050</id><published>2010-01-19T11:19:00.000-08:00</published><updated>2010-01-19T12:13:22.562-08:00</updated><title type='text'>Numeri primi e WinPFGW</title><content type='html'>&lt;b&gt;Numeri primi e WinPFGW&lt;/b&gt;&lt;br /&gt;La prima cosa è scaricare il programma da INTERNET al link che vi ho segnalato al blog precedente; unzippare il tutto in una cartella e lanciare l'eseguibile WinPFGW.exe col click del mouse.&lt;br /&gt;&lt;br /&gt;La prima cosa da imparare sono i comandi che possiamo digitare sulla "command line". Clicchiamo su Help, poi su Contents, poi mettiamo il check in Pfgwdoc.txt, clicchiamo su Print e stampiamo sul Desktop un file&lt;br /&gt;di tipo .xps che chiamiamo Help. Otterremo un documento di help da consultare.&lt;br /&gt;&lt;br /&gt;Un primo esempio di uso sono le "query" col comando -q, per verificare la primalità di un numero.&lt;br /&gt;Verifichiamo ad esempio se è primo il numero 1+3*10^5825+100^5825. Scriviamo nella "command line" la riga:&lt;br /&gt;&lt;br /&gt;-q1+3*10^5825+100^5825&lt;br /&gt;&lt;br /&gt;e premiamo Start. Scopriremo che è un 3-PRP (un probabile primo). Se vogliamo salvare il nostro lavoro in append ad un file di nome work.txt scriveremo invece:&lt;br /&gt;&lt;br /&gt;-q1+3*10^5825+100^5825 -lwork.txt&amp;nbsp; (Vedi figura).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZpVWqYMbyjc/S1YFr7ApCDI/AAAAAAAAACQ/oph6fqPhZTk/s1600-h/FigWinPFGW.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ZpVWqYMbyjc/S1YFr7ApCDI/AAAAAAAAACQ/oph6fqPhZTk/s320/FigWinPFGW.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Se, invece, abbiamo molti numeri da fargli valutare apriamo un file di nome pfgw.txt nella stessa directory.&lt;br /&gt;&amp;nbsp;Usiamo ad esempio WordPad come editor e scriviamo:&lt;br /&gt;2^3-1&lt;br /&gt;2^31-1&lt;br /&gt;3&lt;br /&gt;7&lt;br /&gt;6&lt;br /&gt;e salviamolo&lt;br /&gt;&lt;br /&gt;A questo punto lasciamo vuota la "command line". WinPFGW esaminerà il file e produrrà un file denominato pfgw-prime.txt dove metterà solo i numeri primi.&lt;br /&gt;&lt;br /&gt;Di solito il file potrebbe essere generato da un Programma in PARI/GP. Ad esempio potremmo scrivere un file pfgw.txt che al variare di i da 1 a 100 calcola (10^i-1)^2 e siamo interessati a vedere quali sono i numeri primi. Il file prodotto lo dobbiamo però aprire prima in WordPad, che riconosce i "carriage return" di PARI/GP, e salvarlo. A questo punto il file lo possiamo dare in pasto a WinPFGW per controllare la primalità dei numeri prodotti.&amp;nbsp; Semplice no?&lt;br /&gt;&lt;br /&gt;Gli altri comandi e possibilità sperimentatele col doc di help.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1851691443271734050?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1851691443271734050/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/numeri-primi-e-winpfgw.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1851691443271734050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1851691443271734050'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/numeri-primi-e-winpfgw.html' title='Numeri primi e WinPFGW'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZpVWqYMbyjc/S1YFr7ApCDI/AAAAAAAAACQ/oph6fqPhZTk/s72-c/FigWinPFGW.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-5351488214932177447</id><published>2010-01-18T13:23:00.000-08:00</published><updated>2010-01-18T13:45:20.965-08:00</updated><title type='text'>Numeri primi: tools e linguaggi</title><content type='html'>&lt;b&gt;Numeri primi: tools e linguaggi&lt;/b&gt;&lt;br /&gt;Lo studio della Teoria dei Numeri, richiede non solo la conoscenza della teoria, ma anche sperimentazione numerica. Spesso essa è fatta con tools scaricabili da INTERNET, realizzati da gruppi internazionali di studio, oppure implementabili con le proprie mani con un linguaggio matematico adeguato. Vi segnalo una serie di risorse indispensabili, a volte free e ottenibili da INTERNET.&lt;br /&gt;&lt;br /&gt;Per i linguaggi il problema fondamentale è disporre di un linguaggio capace di trattare numeri con moltissime cifre, possibilmente senza limiti molto bassi sul numero di cifre e con una ottima velocità di esecuzione. Se non ha questa caratteristica lo sforzo per programmare non vale la candela. A volte sono necessari computer a 64 bit, ma nella maggior parte dei casi è sufficiente un linguaggio con adeguate librerie software (e un PC a 32 bit), che permetta di trattare tali numeri, anche se, spesso un pò a discapito della semplicità e della chiarezza, a causa delle funzionalità fornite dalla libreria. Ovviamente se l'obiettivo è di grande valore la difficoltà passa in secondo piano. Sia i tools, sia i linguaggi che i CAS permettono grafici 2D e 3D (zeta di Riemann, grafici di funzione, etc).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Linguaggi consigliabili&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;- &lt;i&gt;GMP Arithmetic without limitations&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://www.gmplib.org/&lt;br /&gt;&lt;br /&gt;E' un linguaggio C-like, con una sua libreria che permette di poter lavorare con numeri interi di grosse dimensioni. Ha una ottima velocità di esecuzione, tale da essere superiore a tanti altri linguaggi (compreso PARI/GP), ma a discapito della chiarezza di programmazione. Lo preferisco quando mi è chiaro l'algoritmo, il problema o la congettura perchè l'ho provata, ad esempio, prima con PARI/GP, su numero di cifre più bassi.&lt;br /&gt;&lt;br /&gt;Quando però si ha a che fare con numeri molto grandi,&amp;nbsp; il tempo di elaborazione aumenta ed avere un linguaggio veloce e poi un PC veloce (frequenza di clock) aiuta molto. Spesso i programmi si possono compilare in modo da sfruttare al massimo anche l'architettura hardware disponibile (AMD, INTEL, etc)&lt;br /&gt;&lt;br /&gt;Poi dipende anche dal problema che si affronta, se si può lavorare in parallelo, allora avere un PC del tipo Core 2 Quad o superiore e a 64 bit, questo ci migliora la qualità della vita!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un avvertimento classico sulle congetture: attenzione che spesso le più belle congetture si infrangono su numeri di moltissime cifre! Non provatele solo su numeri bassi.&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;PARI/GP&lt;/i&gt; &lt;br /&gt;&amp;nbsp; http://pari.math.u-bordeaux.fr/&lt;br /&gt;&lt;br /&gt;E' un linguaggio di scripting di matematica che permette, grazie a molte funzionalità, di poter scrivere programmi di test per le proprie prove, congetture e calcoli. Spesso è preferibile realizzare prima l'algoritmo in PARI/GP, che richiede meno tempo, meno complicazioni e maggiore linearità per fare la verifica delle proprie idee, per poi realizzare successivamente il tutto con GMP per poter lavorare con numeri grandissimi, maggiore velocità e minor impegno di RAM.&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;WinHugs &lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; http://www.haskell.org/haskellwiki/WinHugs&lt;br /&gt;&lt;br /&gt;E' un linguaggio funzionale di programmazione, per chi è più attratto dalla notazione matematica come programmazione.Ha minori prestazioni rispetto ai primi due.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CAS &lt;/b&gt;&lt;br /&gt;Poi esistono tool di calcolo e di grafica, definiti CAS=Computer Aided System, per calcolare derivate, integrali, espressioni etc. come:&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;Maxima&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://maxima.sourceforge.net/&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; Eccellente&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;R&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://www.r-project.org/&amp;nbsp; &lt;br /&gt;&amp;nbsp; Eccellente&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motori&lt;/b&gt;&lt;br /&gt;Esistono anche&amp;nbsp; motori che permettono di valutare equazioni ed espressioni come quello &lt;i&gt;Wolfram&lt;/i&gt;. La scelta di uno di essi dipende anche dal tipo di problema da affrontare.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tools analisi numerica per recordman&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;I tools per l'analisi dei numeri primi, composti, di Mersenne, di Fermat, di Proth etc, sono quelli di maggiore fascino per i recordman.&lt;br /&gt;&lt;br /&gt;Nel seguito vi segnalo dei siti, che di solito danno anche informazioni sull'utilizzo o sui numeri che può ricercare. In ogni caso vi consiglio un pò di pratica.&lt;br /&gt;&lt;br /&gt;A che possono servire?&lt;br /&gt;- a verificare se un numero è primo se non si dispone di un sito su cui verificare&lt;br /&gt;- a creare liste di numeri che rispettano delle regole (palinfromi, formule, etc)&lt;br /&gt;&amp;nbsp; per dare la lista ottenuta in pasto ad un successivo tool per determinare se nella lista &lt;br /&gt;&amp;nbsp; c'è un numero primo&lt;br /&gt;&lt;br /&gt;Ecco una lista molto valida, di tolls veri 'coltellini svizzeri' del ricercatore di matematica applicata o dell'informatico e del recordman:&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;WinPFGW&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://www.fermatsearch.org/download.html&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;NewPGen&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://primes.utm.edu/programs/NewPGen/&lt;br /&gt;&lt;br /&gt;Se cerchiamo grandi numeri primi della forma kb^n +1 o kb^n -1; oppure coppie di numeri gemelli molto grandi, o di Sophie Germain primes, o una catena di lunghezza due. In poche parole è un 'setacciatore'. Può servire per creare liste di 'numeri candidati primi' di un certo tipo da sottoporre ad altri tools.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;- &lt;i&gt;Proth&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://primes.utm.edu/programs/gallot/&lt;br /&gt;&amp;nbsp; Implementazione del Teorema di Proth per la ricerca di primi nella forma Proth&lt;br /&gt;&amp;nbsp; Si può sfruttare NewPGen per creare una lista da dare in pasto poi a Proth&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Teorema di Proth (1878): Sia N = k2^n + 1 with 2^n &amp;gt; k.&amp;nbsp;&amp;nbsp; Se vi è un intero a tale che&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a^((N-1)/2) = -1 (mod N), &lt;br /&gt;&amp;nbsp; allora N is prime. &lt;br /&gt;&lt;br /&gt;E' un test utile : si applica ai primi di Cullen, ai fattori di Fermat, ai primi della congettura di Sierpinski etc.&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;Primeform&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://pages.prodigy.net/chris_nash/primeform.html#Download&lt;br /&gt;&amp;nbsp; Per trovare Probable Prime&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;FermFact&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://www.fermatsearch.org&lt;br /&gt;&amp;nbsp; Per i numeri di Fermat&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;Generalized Fermat Prime search&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://pagesperso-orange.fr/yves.gallot/primes/download.html&lt;br /&gt;&lt;br /&gt;- &lt;i&gt;Primo&lt;/i&gt; oppure &lt;i&gt;New Primo&lt;/i&gt;&lt;br /&gt;&amp;nbsp; http://www.ellipsa.eu/&lt;br /&gt;&amp;nbsp; Primalità de numeri, Basato sulle curve ECPP&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-5351488214932177447?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/5351488214932177447/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/numeri-primi-tools-e-linguaggi.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5351488214932177447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5351488214932177447'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/numeri-primi-tools-e-linguaggi.html' title='Numeri primi: tools e linguaggi'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-5323738669635963790</id><published>2010-01-03T04:04:00.000-08:00</published><updated>2010-01-06T02:47:49.191-08:00</updated><title type='text'>Fibonacci e dintorni</title><content type='html'>Proseguiamo con qualche altra strabiliante cosa legata ai numeri di Fibonacci.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Triangoli pitagorici&lt;/b&gt;&lt;br /&gt;Charles Raine trovò che se si considerano 4 numeri di Fibonacci di seguito F&lt;span style="font-size: x-small;"&gt;k&lt;/span&gt;,F&lt;span style="font-size: x-small;"&gt;k+1&lt;/span&gt;,F&lt;span style="font-size: x-small;"&gt;k+2&lt;/span&gt;,F&lt;span style="font-size: x-small;"&gt;k+3&lt;/span&gt;&lt;br /&gt;e consideriamo un triangolo rettangolo con cateti a, b e ipotenusa c, allora è:&lt;br /&gt;&lt;br /&gt;a=F&lt;span style="font-size: x-small;"&gt;k&lt;/span&gt;*F&lt;span style="font-size: x-small;"&gt;k+3&lt;/span&gt;&lt;br /&gt;b=2*(F&lt;span style="font-size: x-small;"&gt;k+1&lt;/span&gt;*F&lt;span style="font-size: x-small;"&gt;k+2&lt;/span&gt;)&lt;br /&gt;c^2 = a^2+b^2&lt;br /&gt;&lt;br /&gt;esaminiamo ad esempio la sequenza di Fibonacci:&lt;br /&gt;1,1,2,3,5,8,13,21,34,...&lt;br /&gt;&lt;br /&gt;Se prendiamo ..3,5,8,13,...&lt;br /&gt;a=3*13=39&lt;br /&gt;b=2(5*8)=80&lt;br /&gt;c=89&lt;br /&gt;&lt;br /&gt;P. Simson, matematico scozzese, trovò invece che:&lt;br /&gt;&lt;br /&gt;F&lt;span style="font-size: x-small;"&gt;k-1&lt;/span&gt;F&lt;span style="font-size: x-small;"&gt;k+1&lt;/span&gt;-F&lt;span style="font-size: x-small;"&gt;k&lt;/span&gt;^2=(-1)^k&lt;br /&gt;&lt;br /&gt;Catalan, invece, che:&lt;br /&gt;&lt;br /&gt;2^(n-1)Fn = Sum(i=0,n,5^i* (n i) )&lt;br /&gt;&lt;br /&gt;dove (n i) per semplicità di notazione è il coefficiente binomiale.&lt;br /&gt;&lt;br /&gt;Lo so, la formula di Catalan vi ricorda i numeri primi di Mersenne!&amp;nbsp; Purtroppo la primalità dei numeri di Mersenne non è legabile alla primabilità dei numeri di Fibonacci. Ad esempio se poniamo che:&lt;br /&gt;&lt;br /&gt;n-1=p&amp;nbsp; n=p+1 con p numero primo allora è:&lt;br /&gt;&lt;br /&gt;2^p - 1 = [1/F&lt;span style="font-size: x-small;"&gt;p+1&lt;/span&gt;&amp;nbsp; Sum ( i=0, p+1,5^i * (p+1&amp;nbsp; i) )] -1&lt;br /&gt;&lt;br /&gt;Se 2^p - 1 = Mp è primo allora p è primo e non è vero il contrario.&lt;br /&gt;Per i numeri di Fibonacci se l'indice è primo è primo anche il valore Fn.&lt;br /&gt;Ora le domande sono:&lt;br /&gt;1 Se Mp è primo è primo anche Fp+1?&lt;br /&gt;2 Se Fp+1 è primo lo è anche Mp?&lt;br /&gt;&lt;br /&gt;Risposta alla prima domanda: Non sempre .&lt;br /&gt;La serie di Fibonacci è tale che&lt;br /&gt;F(0)=0, F(1)=1 e F(k)=F(k-1)+F(k-2)&lt;br /&gt;quindi: &lt;br /&gt;1,1,2,3,5,8,13,21,34,... &lt;br /&gt;&lt;br /&gt;Se p=3 Mp=7&amp;nbsp; primo allora Fp+1=F4=3 primo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Se p=5 Mp=31 primo allora Fp+1=F6=8 NON PRIMO!&amp;nbsp; (contro-esempio)&lt;br /&gt;&lt;br /&gt;Quindi non ha senso nemmeno la seconda domanda se non è verificata la prima.&lt;br /&gt;&lt;br /&gt;Diversi contributi dell'autore sono su:&lt;br /&gt;&lt;a href="http://it.wikipedia.org/wiki/Successione_di_Fibonacci"&gt;http://it.wikipedia.org/wiki/Successione_di_Fibonacci&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In tale contributo c'è anche come la primalità di un numero di Mersenne è legata invece a quello di un numero di Fibonacci.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-5323738669635963790?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/5323738669635963790/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/fibonacci-e-dintorni.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5323738669635963790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/5323738669635963790'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/fibonacci-e-dintorni.html' title='Fibonacci e dintorni'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-7723369825373242891</id><published>2010-01-01T10:56:00.000-08:00</published><updated>2010-01-03T03:40:24.960-08:00</updated><title type='text'>Giochiamo con i numeri di Fibonacci</title><content type='html'>Iniziamo ad esaminare un tema apparentemente semplice ma che ha ancora vasti settori in cui indagare ulteriormente: i numeri di Fibonacci.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Numeri di Fibonacci classici&lt;br /&gt;&lt;/b&gt;I numeri di Fibonacci sono i numeri della successione di Fibonacci: &lt;br /&gt;&lt;br /&gt;0, 1, 1, 2, 3, 5, 8, 13, 21,. . . . . ciascuno dei quali, dopo il secondo è la somma dei due precedenti. &lt;br /&gt;&lt;br /&gt;In generale è:&lt;br /&gt;F(0)=0&lt;br /&gt;F(1)=1&lt;br /&gt;F(k)= F(k-1)+F(k-2)&lt;br /&gt;&lt;br /&gt;I numeri di Fibonacci possono anche essere considerati come una funzione di numeri interi non negativi: &lt;br /&gt;&amp;nbsp;&amp;nbsp; n&amp;nbsp; = 0, 1, 2, 3, 4, 5, 6,&amp;nbsp; 7,&amp;nbsp; 8,&amp;nbsp; 9, 10, 11,&amp;nbsp; 12, ...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;F (n) = 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... &lt;br /&gt;&lt;br /&gt;La soluzione esatta in forma chiusa per questa funzione è chiamata "&lt;b&gt;formula di Binet&lt;/b&gt;": &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;F (n) = (Phi ^ n - Phip ^ n) / sqrt (5) (per tutti intero n&amp;gt; = 0 oppure n &amp;lt;0),&lt;br /&gt;&lt;br /&gt;dove &lt;br /&gt;&lt;br /&gt;Phi&amp;nbsp; = (1 + sqrt (5)) / 2 = 1,61803398874989484820 ... (&lt;b&gt;Golden Ratio&lt;/b&gt;)&lt;br /&gt;Phip = Phi Prime = (1 - sqrt (5)) / 2 = 1 - Phi = -1/Phi = -0,61803398874989484820 ...,&lt;br /&gt;&lt;br /&gt;Poiché F (k) è un intero e l'entità delle Phip ^ n / sqrt (5) è inferiore a 1 / 2 per n&amp;gt; = 0, &lt;br /&gt;una forma variante della formula è: &lt;br /&gt;&lt;br /&gt;F(k) = ceil (Phi ^ n / sqrt (5)), n&amp;gt; = 0.&lt;br /&gt;&lt;br /&gt;Se si dispone di un numero di Fibonacci si può calcolare il suo indice: k = indFib (F (k))&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La formula è la seguente: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; indFib(k) = 0 if |k| &amp;lt; 1, altrimenti&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iindFib(k) = ceil (Log (sqrt (5) * abs( k )) / Log (Phi)).&lt;br /&gt;&lt;br /&gt;Ad esempio, indFib (144) = 12.&amp;nbsp; E' accurata se k è un numero di Fibonacci. &lt;br /&gt;&lt;br /&gt;Un numero di Fibonacci si verifica&amp;nbsp; con isFib (k)&lt;br /&gt;Un numero di Fibonacci deve essere un numero intero e si deve ottenere un quadrato perfetto da&amp;nbsp; 5 * x ^ 2 + 4 o 5 * x ^ 2 - 4. &lt;br /&gt;&lt;br /&gt;I numeri di Fibonacci possono essere definiti anche per n negativi: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F(–2*k) = –F(2*k) F (-2 * k) =-F (2 * k)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F(–2*k – 1) = F(2*k + 1) F (-2 * k - 1) F = (2 * k + 1)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp; = ..., –6, –5, –4, –3, –2, –1, 0, 1, 2, 3, 4, 5, 6, ... &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F(n) = ..., –8,&amp;nbsp; 5, –3,&amp;nbsp; 2, –1,&amp;nbsp; 1, 0, 1, 1, 2, 3, 5, 8, ... &lt;br /&gt;&lt;br /&gt;La funzione continua analitica: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fe(x) = (Phi^x – 1 / Phi^x) / Sqrt(5), &lt;br /&gt;passa attraverso tutti i numeri di Fibonacci, anche n = x (n positivo o negativo). &lt;br /&gt;&lt;br /&gt;La funzione continua analitica: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fo (x) = (Phi ^ x + 1 / Phi ^ x) / sqrt (5),&lt;br /&gt;passa attraverso tutti i numeri di Fibonacci di n dispari = x (n positivo o negativo). &lt;br /&gt;&lt;br /&gt;La funzione continua analitica: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fib(x) = (1 + cos(x*Pi))*Fe(x)/2 + (1 – cos(x*Pi))*Fo(x)/2, &lt;br /&gt;passa attraverso tutti i numeri di Fibonacci per ogni n = x (n positivo o negativo). &lt;br /&gt;&lt;br /&gt;Questa ultima espressione può essere ridotta a: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fib(x) = (Phi^x – cos(x*Pi) / Phi^x) / sqrt(5) &lt;br /&gt;&lt;br /&gt;Questa formula può anche essere usato per calcolare la funzione di Fibonacci generalizzata di una &lt;br /&gt;variabile complessa.Ad esempio:&lt;br /&gt;&lt;br /&gt;Fib (3 + 4 * i) = -5248.51130,72837,20182,8 ... -14195.96228,83530,10885,8 ... * i. * I. &lt;br /&gt;&lt;br /&gt;E' pur vero che Fib (x 2) = Fib (x 1) + Fib (x). &lt;br /&gt;&lt;br /&gt;Ad esempio Fib (3,6 + 4,7 * i) = Fib (2,6 + 4,7 * i) + Fib (1.6 + 4.7 * I). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Numeri complessi di Fibonacci&lt;/b&gt;&lt;br /&gt;Un numero complesso di Fibonacci è un numero complesso z la cui parte reale Re(z) è un numero di Fibonacci F(k).&lt;br /&gt;&lt;br /&gt;Ad esempio z=8-i è un numero complesso di Fibonacci perchè Re(z)=8=F(6).&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Proprietà dei numeri complessi di Fibonacci&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Il rapporto di numeri complessi di Fibonacci con k dispari e n &amp;gt; 0 è tale che:&lt;br /&gt;&lt;br /&gt;[F(k) - n*i] / [F(k-1)-(n-1)*i] = [F(k+n)+i*(-1)^(n-1)] / [F(k+(n-1)]&lt;br /&gt;&lt;br /&gt;dove F(k+n)=Sum(i=k+1,n-1,F(i))&lt;br /&gt;&lt;br /&gt;Ad esempio:&lt;br /&gt;(5&amp;nbsp; - i ) / 3-i = 8&amp;nbsp; + i / 5&lt;br /&gt;(13 - i ) / 8-i = 21 + i / 13&lt;br /&gt;(8 - 2i) / (5 - i) = (21 - i) / 13 &lt;br /&gt;(13 - 3i)/(8 - 2i) = (55 + i)/34 (13 - 3i) / (8 - 2i) = (55 + i) / 34 &lt;br /&gt;&lt;br /&gt;Per k pari e n &amp;gt; 0 la formula non vale per i numeri complessi ma solo per i numeri interi sostituendo 1 a i,&lt;br /&gt;ovvero: &lt;br /&gt;&lt;br /&gt;[F(k) - n] / [F(k-1)-(n-1)] = [F(k+n)+(-1)^(n-1)] / [F(k+(n-1)] &lt;br /&gt;&lt;br /&gt;dove F(k+n)=Sum(i=k+1,n-1,F(i))&lt;br /&gt;&lt;br /&gt;(8 - 1) / (5 - 1) = (13 + 1) / 8. &lt;br /&gt;(13 - 2) / 8 - 1) = (34 - 1) / 21 &lt;br /&gt;(8 - 3)/(5 - 2) = (34 + 1)/21 (8 - 3) / (5 - 2) = (34 + 1) / 21 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Legame con il triangolo di Tartaglia o con i coefficienti binomiali&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Il triangolo di Tartaglia o di Pascal è noto. Ebbene se si considerano le diagonali che dall'alto a destra scendono verso sinistra si individuano i numeri di Fibonacci.&lt;br /&gt;&lt;br /&gt;La relazione esistente è difatti:&lt;br /&gt;Fib(n)= Sum(k=0,n-1,(n-k-1 k) ) = Sum(k=1,n,(n-k k-1) )&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;dove per semplicità la notazione (n-k-1 k) rappresenta un coefficiente binomiale&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Teorema &lt;/b&gt;&lt;br /&gt;Ogni numero di Fibonacci è un fattore di (un numero infinito di) numeri di Fibonacci successivi oppure ogni k-th numero di Fibonacci è un multiplo di F (k)". E' equivalente a dire matematicamente che:&lt;br /&gt;Se Fib(k) = m allora Fib(n*k) = t con m|t &lt;br /&gt;&lt;br /&gt;Si dimostra in due modi possibili:&lt;br /&gt;1.mo modo:&lt;br /&gt;&lt;br /&gt;Dai coefficienti binomiali&lt;br /&gt;&lt;br /&gt;Fib(k)&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; = Sum(i=1,k-1, (k-i i-1) ) = m&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Fib(n*k)&amp;nbsp;&amp;nbsp;&amp;nbsp; = Sum(i=1,n*k-1, (n*k-i i-1) ) = t&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;2.do modo:&lt;br /&gt;&lt;br /&gt;Costruiamo una tabella mettendo x se il risultato m di m=Fib(k) non è un divisore di Fib(k) e * se lo è:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3      4     5    6      7&amp;nbsp;&amp;nbsp;      8&amp;nbsp;&amp;nbsp;     9&amp;nbsp;     10     11    12 &lt;br /&gt;&lt;br /&gt;Fib(i) &amp;nbsp; &amp;nbsp; &amp;nbsp;     2       3    5    8      13    21   34   55     89     144 &lt;br /&gt;&lt;br /&gt;2=Fib(3)    * x&amp;nbsp;    x    *      x&amp;nbsp;&amp;nbsp;&amp;nbsp;       x&amp;nbsp;&amp;nbsp;    *&amp;nbsp;&amp;nbsp;      x&amp;nbsp;&amp;nbsp;       x&amp;nbsp;&amp;nbsp;       *&lt;br /&gt;&lt;br /&gt;3=Fib(4)    x       *&amp;nbsp;    x    x      x&amp;nbsp;&amp;nbsp;&amp;nbsp;       *&amp;nbsp;&amp;nbsp;    x&amp;nbsp;&amp;nbsp;      x&amp;nbsp;&amp;nbsp;&amp;nbsp;       x&amp;nbsp; *&lt;br /&gt;&lt;br /&gt;5=Fib(5)    x       x    *    x      x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp;&amp;nbsp;    x&amp;nbsp;&amp;nbsp;      *&amp;nbsp;&amp;nbsp;&amp;nbsp;       x&amp;nbsp;       x&lt;br /&gt;&lt;br /&gt;Proseguendo si vede ad esempio che: &lt;br /&gt;- 2 è un fattore ogni 3 Fib(k)&lt;br /&gt;- 3 è un fattore ogni 4 Fib(k)&lt;br /&gt;- 5 è un fattore ogni 5 Fib(k)&lt;br /&gt;etc&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Teorema&lt;/b&gt; &lt;br /&gt;I numeri di Fibonacci vicini non hanno fattori in comune oppure Fib (k) e Fib (k +1) sono coprimi. &lt;br /&gt;&lt;br /&gt;Se Fib(k)=m*a&amp;nbsp;&amp;nbsp; e&amp;nbsp; Fib(k+1)=m*b&amp;nbsp; per assurdo allora Fib(k+2)=Fib(k)+Fib(k+1)=m*(a+b)&lt;br /&gt;Il che vorrebbe dire che tutta la serie di Fibonacci dovrebbe avrebbe lo stesso fattore m in comune, &lt;br /&gt;il che non è vero.&lt;br /&gt;&lt;br /&gt;=== &lt;b&gt;Teorema di Vorob’ev&lt;/b&gt; ===&lt;br /&gt;&lt;br /&gt;gcd( F(m), F(n) ) = F( gcd(m,n) ) &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Numeri di Fibonacci primi&lt;/b&gt;&lt;br /&gt;Come corollario di prima, se l'indice di un numero di Fibonacci è un multiplo di k, il numero di Fibonacci è composto. &lt;br /&gt;&lt;br /&gt;Se il numero di Fibonacci è un primo lo è anche l'indice. &lt;br /&gt;&lt;br /&gt;Non è vero il contrario. Infatti ad esempio&lt;br /&gt;&lt;br /&gt;F (19) = 4.181 e F (19) non è primo perché 113x37 = 4.181&lt;br /&gt;&lt;br /&gt;Il più grande numero primo di Fibonacci F (81.839) è stato segnalato in aprile 2001 da David Broadbent e Bouk de Water.&lt;br /&gt;&lt;br /&gt;La serie di numeri indice dei numeri primi di Fibonacci è A001605 Sloane&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Numeri di Fibonacci e fattori primi speciali&lt;/b&gt;&lt;br /&gt;Se guardiamo i fattori primi di un numero di Fibonacci, ci sarà almeno uno di loro che non è mai apparso come un fattore in ogni numero di Fibonacci in precedenza. &lt;br /&gt;&lt;br /&gt;Questo è noto come teorema di Carmichael e si applica a tutti i numeri di Fibonacci, tranne casi particolari: &lt;br /&gt;&lt;br /&gt;Fib (1) = 1 (non ha fattori primi), &lt;br /&gt;Fib (2) = 1 (non ha fattori primi), &lt;br /&gt;Fib (6) = 8, che ha solo il fattore primo 2, che è anche Fib (3), &lt;br /&gt;Fib (12) = 144, che anche solo il 2 e 3, come i suoi fattori primi e questi sono apparsi in precedenza come Fib (3) = 2 e Fib (4) = 3. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-7723369825373242891?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/7723369825373242891/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/giochiamo-con-i-numeri-di-fibonacci.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7723369825373242891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/7723369825373242891'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2010/01/giochiamo-con-i-numeri-di-fibonacci.html' title='Giochiamo con i numeri di Fibonacci'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-387391135530880848</id><published>2009-12-27T11:18:00.000-08:00</published><updated>2009-12-28T23:48:36.940-08:00</updated><title type='text'>Algoritmo antiperiodo di una frazione</title><content type='html'>Dai blog precedenti abbiamo visto come lavorare sul periodo &lt;br /&gt;di una frazione e come quest'ultimo dipendesse eslusivamente &lt;br /&gt;dal denominatore della frazione.&lt;br /&gt;&lt;br /&gt;Una frazione però può dare anche un antiperiodo. L'antiperiodo&lt;br /&gt;è il numero di cifre dopo la virgola e che precedono quelle del &lt;br /&gt;periodo.&lt;br /&gt;&lt;br /&gt;Anche l'antiperiodo dipende esclusivamente dal denominatore&lt;br /&gt;della frazione a/b. Per cui il numeratore può tranquillamente&lt;br /&gt;essere a=1.&lt;br /&gt;&lt;br /&gt;Alcuni esempi, con in rosso il periodo e in blu l'antiperiodo:&lt;br /&gt;&lt;br /&gt;1/70    = 0.&lt;span style="color: blue;"&gt;0&lt;/span&gt;&lt;span style="color: red;"&gt;142857&lt;/span&gt;1428571428571428571429&lt;br /&gt;1/130 = 0.&lt;span style="color: blue;"&gt;00&lt;/span&gt;&lt;span style="color: red;"&gt;769230&lt;/span&gt;7692307692307692307692&lt;br /&gt;1/404 = 0.&lt;span style="color: blue;"&gt;002&lt;/span&gt;&lt;span style="color: red;"&gt;4752&lt;/span&gt;47524752475247524752475&lt;br /&gt;1/808 = 0.&lt;span style="background-color: white; color: blue;"&gt;0012&lt;/span&gt;&lt;span style="color: red;"&gt;3762&lt;/span&gt;3762376237623762376238&lt;br /&gt;&lt;br /&gt;L'antiperiodo conta il numero di cifre antecedenti il periodo.&lt;br /&gt;&lt;br /&gt;Da cosa dipende l'antiperiodo ed il periodo? E' lo stesso che chiedere:&lt;br /&gt;"Da cosa dipende che un numero ha periodo finito, nullo o infinito?"&lt;br /&gt;&lt;br /&gt;La periodicità, nulla, finita o infinita non è una proprietà&lt;br /&gt;del numero (del denominatore della frazione) ma dipende da:&lt;br /&gt;- base numerica che si considera (decimale, ottale, etc)&lt;br /&gt;-  numero di primi di cui è costituito il denominatore della frazione. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ad esempio &lt;br /&gt;1/10 = 0,1 è finito perchè 2, 5 e 10 sono contenuti in 10&lt;br /&gt;1/3  = 0,33333 è irrazionale perchè 3 non è contenuto nella base 10&lt;br /&gt;&lt;br /&gt;L'antiperiodo quindi è il massimo numero tra le potenze di 2^h e le potenze &lt;br /&gt;di 5^k.&lt;br /&gt;&lt;br /&gt;Quindi basta contare quante volte h è divisibile il numero per 2 e &lt;br /&gt;quante volte k è divisibile il numero per 5 e si prende il massimo &lt;br /&gt;tra i due valori h e k.&lt;br /&gt;&lt;br /&gt;L'algoritmo quindi è molto semplice.&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;*&lt;br /&gt;*  AntiPeriod of a fraction with  &lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;AntPerN(n)= local(d2=0, d5=0); { &lt;br /&gt;&lt;br /&gt;while( Mod(n,2) == 0, n = n/2; d2=d2+1);&lt;br /&gt;while( Mod(n,5) == 0, n = n/5; d5=d5+1);&lt;br /&gt;&lt;br /&gt;return(max(d2,d5));  &lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZpVWqYMbyjc/Szm0TtWTPvI/AAAAAAAAACA/wlBqGx27EfY/s1600-h/buon_anno_4801.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ZpVWqYMbyjc/Szm0TtWTPvI/AAAAAAAAACA/wlBqGx27EfY/s320/buon_anno_4801.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-387391135530880848?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/387391135530880848/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2009/12/algoritmo-antiperiodo-di-una-frazione.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/387391135530880848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/387391135530880848'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2009/12/algoritmo-antiperiodo-di-una-frazione.html' title='Algoritmo antiperiodo di una frazione'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZpVWqYMbyjc/Szm0TtWTPvI/AAAAAAAAACA/wlBqGx27EfY/s72-c/buon_anno_4801.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-1700121346101131605</id><published>2009-12-27T02:12:00.000-08:00</published><updated>2009-12-27T11:25:43.105-08:00</updated><title type='text'>Algoritmo sul gaussiano di una frazione, primalità e compositezza</title><content type='html'>&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;In questo blog ci poniamo il problema di scrivere un algoritmo in PARI/GP per determinare il periodo di una frazione. &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&lt;/style&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;Nel blog precedente abbiamo detto che:&amp;nbsp;&lt;/span&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;1 - Si definisce &lt;b&gt;gaussiano del numero N&lt;/b&gt; &lt;b&gt;rispetto ad una base B&lt;/b&gt;, indicato come k = g(N) = T(1/N), “il più piccolo valore k tale che B^k = 1 mod N”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;2 - Si dimostra che il gaussiano k di un rapporto a/b dipende solo dal denominatore b, quindi nel calcolo del gaussiano si può porre a=1 e calcolare k = T(1/N), dove t è l'algoritmo da realizzare. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;3 - Un teorema che deriva dal Piccolo Teorema di Fermat porta a dire anche che il gaussiano di n è un divisore della funzione di Eulero φ(n). In particolare se n è primo è φ(n) = n – 1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;&lt;o:p&gt;Se dobbiamo scrivere degli algoritmi di primalità o di compositezza basati sulle frazioni continue occorre scrivere prima un algoritmo per il gaussiano.&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;/*&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp; Period of a fraction with&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp; gaussian function&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;GaussN(n)= local(g=0, r=1); { &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;while( Mod(n,2) == 0, n = n/2;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;while( Mod(n,5) == 0, n = n/5;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;while( g == 0 | r != 1, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = Mod(( 10 * r), n);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g = g + 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;return(g);&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;  &lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;Considerazioni sull'algoritmo&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;Scrivere un algoritmo che calcoli il gaussiano comunque è semplice, ma sicuramente il metodo non è veloce per numeri grandi (basta applicarlo ad esempio al numero di Mersenne 2^31-1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;In PARI/GP esiste anche un ulteriore metodo semplice da collocare comunque nell’ambito di un algoritmo; ad esempio sappiamo che sqrt(21)= 4,&lt;u&gt;1,1,2,1,8&lt;/u&gt; dove la parte sottolineata è il periodo T(sqrt(21)).Se usiamo contfrac(sqrt(21)) otteniamo il vettore [4,1,1,2,1,8,1,1,2,1,8,1,…].&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;Ora se a1 è il primo elemento del vettore e aj è il j-esimo elemento del vettore, allora il periodo T(sqrt(21))=j-1 se aj=2*a1. Ovviamente il metodo è poco applicabile se a1=0, ovvero la frazione non è periodica ma è finita o infinita (numero irrazionale).L’algoritmo presentato per il calcolo del gaussiano non usa però contfrac. La scelta dipende dal fatto che contfrac non sempre fornisce il risultato in modo facilmente trattabile nei casi di rapporti 1/N. Contfrac è più efficace nei casi di calcoli delle radici quadrate di un numero N.&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;Algoritmo di compositezza&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;(basato sul Teorema del blog precedente)&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;/*&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp; IsComposite ?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp; -1 Boh&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp;&amp;nbsp; 1 Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp;&amp;nbsp; 0 No (it's a prime number)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;isCompN(n)= local(g=0, status=-1); { &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;if( Mod(n,2) == 0, return(status););&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;g = GaussN(n);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;print("gaussiano(",n,") = ", g);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;if( g == n-1, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status=0; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("No, it's a prime number!");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(status);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;if( g != 1,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( frac((n-1)/g) != 0.0, status = 1;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;if( status == 1, print("Yes, it's a composite number!"););&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;return(status);&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}p.MsoFooter, li.MsoFooter, div.MsoFooter	{mso-style-priority:99;	mso-style-unhide:no;	mso-style-link:"Piè di pagina Carattere";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	tab-stops:center 240.95pt right 481.9pt;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}span.PidipaginaCarattere	{mso-style-name:"Piè di pagina Carattere";	mso-style-priority:99;	mso-style-unhide:no;	mso-style-locked:yes;	mso-style-link:"Piè di pagina";	mso-ansi-font-size:12.0pt;	mso-bidi-font-size:12.0pt;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:595.3pt 841.9pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:35.4pt;	mso-footer-margin:35.4pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;/*&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp; IsMyPrime ?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp;&amp;nbsp; 1 Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*&amp;nbsp;&amp;nbsp; 0 No &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;isMyPrime(n)= local(status=0); { &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;if( eulerphi(n) == n-1, status=1;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;return(status);&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;Se si guarda l’algoritmo isComposite ci si rende conto che, per numeri grandi, già ad esempio per un numero di Mersenne come 2^31-1, poiché il gaussiano è calcolato per successivi incrementi unitari ne consegue che sono necessari molti cicli. &lt;o:p&gt;&lt;/o:p&gt;In tal caso è più veloce un algoritmo come isMyPrime o le funzionalità built-in di PARI/GP come eulerphi, isprime, ispseudoprime. Queste ultime funzioni built-in soffrono ovviamente del fatto che dipendono dal numero di primi precaricati e dalla RAM disponibile e allocata al programma.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: x-small;"&gt;&lt;o:p&gt;&lt;b&gt;Alla prox&lt;/b&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-1700121346101131605?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/1700121346101131605/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2009/12/algoritmo-sul-gaussiano-di-una-frazione.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1700121346101131605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/1700121346101131605'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2009/12/algoritmo-sul-gaussiano-di-una-frazione.html' title='Algoritmo sul gaussiano di una frazione, primalità e compositezza'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-3591846938289106152</id><published>2009-12-18T08:09:00.000-08:00</published><updated>2009-12-27T01:59:38.742-08:00</updated><title type='text'>Esiste un metodo per dire che un valore intero N non è primo?</title><content type='html'>&lt;b&gt;No body ?&amp;nbsp; No party!!&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;Beh a pensarci sì; con le frazioni continue e l'espansione periodica è possibile creare un "test di compositezza" ad hoc. Brutto il termine "compositezza", ma l'italiano non offre di meglio perchè invece "compostezza" è un'altra cosa!. &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:Wingdings;	panose-1:5 0 0 0 0 0 0 0 0 0;	mso-font-charset:2;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:0 268435456 0 0 -2147483648 0;}@font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;} /* List Definitions */ @list l0	{mso-list-id:1061558440;	mso-list-type:hybrid;	mso-list-template-ids:867583462 68157441 68157443 68157445 68157441 68157443 68157445 68157441 68157443 68157445;}@list l0:level1	{mso-level-number-format:bullet;	mso-level-text:;	mso-level-tab-stop:36.0pt;	mso-level-number-position:left;	text-indent:-18.0pt;	font-family:Symbol;}ol	{margin-bottom:0cm;}ul	{margin-bottom:0cm;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Il risultato di una frazione può dare:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;1 assenza di periodo: numero finito o      numero irrazionale &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;2 presenza di periodo&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;3 presenza di antiperiodo e periodo&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;/ul&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Se al denominatore ci sono 2 e 5 o potenze di essi o combinazioni (perché fattori della numerazione per 10), avremo a che fare con un numero finito.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Si definisce &lt;b&gt;gaussiano del numero N&lt;/b&gt; &lt;b&gt;rispetto ad una base B&lt;/b&gt;, indicato come k = g(N) = T(1/N), “il più piccolo valore k tale che B^k = 1 mod N”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Si dimostra che il gaussiano k di un rapporto a/b dipende solo dal denominatore b, quindi nel calcolo del gaussiano si può porre a=1 (come nell’algoritmo proposto). Ecco perché spesso è indicato come k = T(1/N). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Un teorema che deriva dal Piccolo Teorema di Fermat porta a dire anche che il gaussiano di n è un divisore della funzione di Eulero φ(n). In particolare se n è primo è φ(n) = n – 1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Un algoritmo del gaussiano è presentato in APPENDICE.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Primalità? Meglio la compositezza.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Con le frazioni continue e l'espansione periodica in base 10 è possibile creare un "test di compositezza" ad hoc. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;E’ brutto il termine "compositezza", ma l'italiano non offre di meglio, anche perché "compostezza" ha un altro significato!. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Teorema (R. Turco)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;“&lt;i&gt;Sia n&amp;gt;1 e dispari. Se il quoziente di 1/n ha un gaussiano k = T(1/N) diverso da 1 e (n-1)/T&amp;nbsp;dà un quoziente non intero, allora&amp;nbsp;n non è primo. Se il gaussiano di 1/n equivale a n-1, allora n è primo&lt;/i&gt;”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Esempi&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;T(1/57)=18&amp;nbsp;&amp;nbsp; (T diverso da 1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;(57-1)/18=3.1111 non intero&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;allora 57 è composto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;br /&gt;T(1/3337)=1610&amp;nbsp;&amp;nbsp; (T diverso da 1) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;(3337-1)/1610=2.0720496 etc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;allora 3337 è composto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;T(1/3333)=4 con (3333-1)/3=883.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;allora il metodo non può dire se è composto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;br /&gt;T(1/9)=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: red;"&gt;violazione della regola&lt;/span&gt;&amp;nbsp; &amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;(9-1)/1=8 intero&amp;nbsp;il metodo non può dire se è composto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;T(1/3367)=6 (3367-1)/6&amp;nbsp; il metodo non può dire se è composto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;T(1/3343)=3342=φ(3343)&amp;nbsp; è primo!!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Valutazione del metodo&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;Se si guarda l’algoritmo isComposite ci si rende conto che, per numeri grandi, già ad esempio per un numero di Mersenne come 2^31-1, poiché il gaussiano è calcolato per successivi incrementi unitari ne consegue che sono necessari molti cicli. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;In tal caso è più veloce un algoritmo come isMyPrime o le funzionalità built-in di PARI/GP come eulerphi, isprime, ispseudoprime. Queste ultime funzioni built-in soffrono ovviamente del fatto che dipendono dal numero di primi precaricati e dalla RAM disponibile e allocata al programma.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Alla prox&lt;/b&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-3591846938289106152?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/3591846938289106152/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2009/12/esiste-un-metodo-per-dire-che-un-valore.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3591846938289106152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/3591846938289106152'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2009/12/esiste-un-metodo-per-dire-che-un-valore.html' title='Esiste un metodo per dire che un valore intero N non è primo?'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-4639128128967020300</id><published>2009-12-17T12:57:00.000-08:00</published><updated>2009-12-21T13:45:40.849-08:00</updated><title type='text'>Le frazioni continue e di Farey,  legami con zeta di Riemann e la geometria frattale</title><content type='html'>&lt;b&gt;Le frazioni continue e di Farey,&amp;nbsp; legami con zeta di Riemann e la geometria frattale&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Come promesso nel blog precedente, qui ci poniamo il seguente problema: poichè esiste un nesso tra frazioni continue e la fattorizzazione di un semiprimo N, sapendo che la fattorizzazione in qualche modo è legata alla zeta di Riemann, allora esiste un legame tra frazioni continue e zeta di Riemann?&lt;br /&gt;&lt;br /&gt;Ebbene scopriremo insieme che la risposta è affermativa. Non solo ma troveremo legami con le frazioni di Farey ed i frattali e si mostra che le equazioni della gravità alle dimensioni extra compattizzate ci portano a dei frattali.&lt;br /&gt;&lt;br /&gt;Con calma leggetevi:&lt;br /&gt;&lt;a href="http://www.gruppoeratostene.com/articoli/Tcn7.pdf"&gt;http://www.gruppoeratostene.com/articoli/Tcn7.pdf &lt;/a&gt;&lt;br /&gt;&lt;a href="http://nardelli.xoom.it/virgiliowizard/sites/default/files/sp_wizard/docs/TCN7.pdf"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Penso che ora preparerete più soddisfatti il vostro "&lt;i&gt;Albero di Frattale&lt;/i&gt;" ... &lt;span style="background-color: orange;"&gt;oppss!&lt;/span&gt; volevamo dire di Natale!!!&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #b45f06; font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;b&gt;Auguri di Buon Natale 2009&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ZpVWqYMbyjc/SyugjSxX6SI/AAAAAAAAAB4/peWpMdoxxdU/s1600-h/babbonatale.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ps="true" src="http://2.bp.blogspot.com/_ZpVWqYMbyjc/SyugjSxX6SI/AAAAAAAAAB4/peWpMdoxxdU/s320/babbonatale.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8645253172814000233-4639128128967020300?l=mathbuildingblock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mathbuildingblock.blogspot.com/feeds/4639128128967020300/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://mathbuildingblock.blogspot.com/2009/12/le-frazioni-continue-e-di-farey-legami.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4639128128967020300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8645253172814000233/posts/default/4639128128967020300'/><link rel='alternate' type='text/html' href='http://mathbuildingblock.blogspot.com/2009/12/le-frazioni-continue-e-di-farey-legami.html' title='Le frazioni continue e di Farey,  legami con zeta di Riemann e la geometria frattale'/><author><name>Block Notes Matematico</name><uri>http://www.blogger.com/profile/09256616261481982006</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZpVWqYMbyjc/SyugjSxX6SI/AAAAAAAAAB4/peWpMdoxxdU/s72-c/babbonatale.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8645253172814000233.post-6287792373680471468</id><published>2009-12-16T12:43:00.000-08:00</published><updated>2009-12-16T12:43:01.156-08:00</updated><title type='text'>Geometria frattale: tra filosofia e necessità</title><content type='html'>&lt;b&gt;Geometria frattale: tra filosofia e necessità&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;Il mondo intero deve agli antichi greci un immenso tesoro teorico come la filosofia, la geometria e la logica. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;  &lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;Euclide ci ha insegnato che con una retta si ha a che fare con una sola dimensione, con una superfice con due dimensioni e con un volume con tre dimensioni.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;Ma un albero quante dimensioni ha? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;E’ giusto parlare di tre dimensioni soltanto? E una nuvola? E le coste italiane oppure il contorno di un Lichene Rizhocarpon Geographicum o di una cellula?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;Questa è una problematica che nasce già a “dimensioni normali”. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;E’ noto che per talune problematiche come GPS, navigazione marina ed aerea si è passati alla geometria non euclidea (ad esempio quella sferica), ma ci sono situazioni per cui neanche le geometrie note sono adeguate e bisogna rivolgersi alla &lt;i&gt;geometria frattale&lt;/i&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;&lt;/meta&gt;&lt;meta content="Word.Document" name="ProgId"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Generator"&gt;&lt;/meta&gt;&lt;meta content="Microsoft Word 12" name="Originator"&gt;&lt;/meta&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;/link&gt;&lt;link href="file:///C:%5CUsers%5Cuser%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face	{font-family:"Cambria Math";	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:roman;	mso-font-pitch:variable;	mso-font-signature:-1610611985 1107304683 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman","serif";	mso-fareast-font-family:"Times New Roman";}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-size:10.0pt;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;}@page Section1	{size:612.0pt 792.0pt;	margin:70.85pt 2.0cm 2.0cm 2.0cm;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;Spesso è la distanza dell’osservatore che porta alla semplificazione a tre dimensioni, ma nell’ambito del problema che si affronta occorre sempre decidere se il livello di astrazione in gioco consente la semplificazione. Osservando una mela a distanza, per calcolare la velocità di caduta di un grave, possiamo immaginare la mela come una superfice o un cerchio, fino a ridurla ad un punto. Se ci avviciniamo cominciamo a considerarla una sfera, ma l’astrazione del problema nell’ambito della fisica classica ci consente ancora di considerarla un punto. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt;"&gt;Esiste, quindi, un evidente rapporto tra osservatore e oggetto osservato e tra oggetto osservato e problema da risolvere: dal modo in cui si instaura questo rapporto, tra distanza di osservazione o grado di 
