mercoledì 16 ottobre 2013

Teoria dei numeri con WinHugs

k DIVISORE DI n
divide k n = mod n k == 0

FATTORI DI n
factors n = [k | k <- [1..n], divide k n]

TEST DI PRIMALITA'
isprime n = factors n == [1, n]

LISTA PRIMI
lisprime n = [k | k <- [2..n], isprime k]

LISTA COMPOSTI
listcomp n = [k | k <- [2..n], not(isprime k)]

FATTORIALE
facto n  = product[1..n]

SOMME
som n = sum[1..n]

MASSIMO COMUN DIVISORE gcd 34 67

CALCOLO DEL PI GRECO 2*archsin(1)

FUNZIONI TRIGONOMETRICHE sin, cos, tan sinh, cosh, tanh

sabato 12 ottobre 2013

Uno studio sulla Phi di Eulero con PARI/GP

Programma in PARI/GP per calcolare la phi di Eulero dei primi k numeri interi e impiego della phi di Eulero per la primalità dei numeri
{fi(k) = local(w);

for(j=1, k, j=j+0; print("---"); print(j); print(eulerphi(j)); print("---"));

}


{primo(k) = local(j);

if(eulerphi(k) == k-1, print ("è primo"), print("non è primo"));

}


venerdì 11 ottobre 2013

la distribuzione dei numeri primi

LA DISRIBUZIONE DEI NUMERI PRIMI: PROGRAMMI IN PARI/GP

A)questa funzione conta i numeri primi minori o uguali al numero k
{n_primi(k) = local(i, count);
count =1;
i = 3;
while(i<=k, if(isprime(i)==1, count = count +1); i = i+2);
print("-------------------");
print(count);
print(k);
print("-------------------");

}


B)questa funzione conta i numeri primi compresi tra k e m (k deve essere un numero dispari)
{n_primi1(k, m) = local(i, count);
count =0;
i = k;
while(i<=m, if(isprime(i)==1, count = count +1); i = i+2);
print("-------------------");
print(count);
print(k);
print(m);
print("-------------------");

}


C)questa funzione usa la prima funzione per determinare per ogni numero intero k i numeri primi minori o uguali a k
{n_primi2(k) = local(j);

for(j=1, k, j=j+0; n_primi(j));

}


Semplici statistiche con il software R

IMPORTARE UN FILE DI DATI NEL FORMATO TESTO CON TABULAZIONI
tabella <- read.table(file.choose(), header= T)
attach(tabella)

ANALISI DEI DATI SU UNA COLONNA
media <-c(mean(colonna))
somma <-c(sum(colonna))
mediana <-c(median(colonna))
varianza <-c(var(colonna))
minimo <-c(min(colonna))
massimo <-c(max(colonna))
devstandard1 <-c(sd(colonna))
devstandard2 <-c(devst(colonna))
correlazione <-c(cor(colonna))
covarianza <-c(cov(colonna))
tapply(colonna, colonna_raggruppamento, mean)

ANALISI DI FREQUENZA
dati <-c(tapply(colonna, colonna, length))

ANALISI DI FREQUENZA CON VALORI PERCENTUALI
dati <-c(dati*100/sum(dati))


GRAFICI
pie(lista) grafico a torta
boxplot(lista) boxplot
barplot(lista) diagramma a barre
hist(lista) istogramma


giovedì 10 ottobre 2013

Fattorizzazione secondo Fermat: ogni intero composto dispari è differenza di due quadrati

s = p+q è pari perché somma di due dispari
d = p-q è pari perché differenza di due dispari

allora
s-d = 2q
s+d= 2p

quindi 
n = pq =(s/2 + d/2)(s/2 - d/2) = (s^2)/4 -(d^2)/4
= (s/2)^2 - (d/2)^2


ove s/2 e d/2 sono interi perché sia s che d sono pari.

quindi 4n +d^2 = s^2 dove s>=2*sqrt(n), s, d numeri pari