26/10/2021, 09:33
26/10/2021, 11:32
P_1_6 ha scritto:Gentilmente qualcuno mi aiuterebbe su Teoria dei Numeri ?
tutte le variabili che nominerò sono interi
[Aiuto1]
E' vero che tutti i numeri nella forma $N=4*((2^k)*w)+3$
si possono esprimere in questa forma ?
$4*((2^k)*x+1)^2-(2*((2^(k))*y)-1)^2$
P_1_6 ha scritto:[Aiuto2]
E' vero che per trasformare un qualsiasi numero dispari in un numero nella forma $N=4*((2^k)*w)+3$ per un $k$ scelto
si proceda in questo modo ?
26/10/2021, 11:38
hydro ha scritto:P_1_6 ha scritto:P_1_6 ha scritto:[Aiuto2]
E' vero che per trasformare un qualsiasi numero dispari in un numero nella forma $N=4*((2^k)*w)+3$ per un $k$ scelto
si proceda in questo modo ?
Questa domanda non significa nulla, non tutti i numeri dispari sono $3$ modulo $4$.
26/10/2021, 11:46
26/10/2021, 11:49
hydro ha scritto:Puoi fare quello che vuoi, che significa "trasformare un numero in un altro"?? Non si capisce proprio quale sia la domanda. Sembra che tu abbia un qualche algoritmo ma a) non si capisce quale sia e b) anche fosse, qual è la domanda?
27/10/2021, 09:18
hydro ha scritto:Puoi fare quello che vuoi, che significa "trasformare un numero in un altro"?? Non si capisce proprio quale sia la domanda. Sembra che tu abbia un qualche algoritmo ma a) non si capisce quale sia e b) anche fosse, qual è la domanda?
input n //positive integer odd
N=n
int i = 1
while(1){
if ( (N-3) mod (2^(i+1)) !=0 ){
N=N*((2^i)+1)
}
a=(sqrt(N)-2)/(2*(2^i))
x=(integer(a))
if(x != a){
x=x+1
}
y=1/2*(sqrt(4*((2^i)*x+1)^2-N)+1)
if(y== integer(y)){
P=[(2*((2^i)*x+1))-(2*y-1)]
Q=[(2*((2^k)*x+1))+(2*y-1)]
if( (P mod n)!=0 && (Q mod n)!=0)
p=MCD(n,P)
q=N/p
break
}
i++;
}
27/10/2021, 17:54
28/10/2021, 08:15
hydro ha scritto:Un consiglio: nessuno leggerà mai quel codice. Devi descrivere a parole, e soprattutto in modo chiaro e non ambiguo, qual è l'input, quali sono gli step, e qual è l'output. Ti faccio un esempio. Il metodo di Fermat funziona così: l'input è un intero positivo $N$. L'algoritmo fa la cosa seguente: calcola $\sqrt{N}$, la arrotonda per eccesso trovando un intero $a$ e poi calcola $a^2-N$. Se questo è un quadrato $b^2$, l'algoritmo termina perchè $a-b$ è un fattore non banale di $N$, ed è l'output dell'algoritmo. Altrimenti, si ripete incrementando $a$ di 1, e così via. Ovviamente l'algoritmo termina al più quando $a=N$.
Input n //positive factorizable integer odd
N=n
int i = 1
while(1){
if ( (N-3) mod (2^(i+1)) !=0 ){
N=N*((2^i)+1)
}
a=(sqrt(N)-2)/(2*(2^i))
x=(integer(a))+1
y=1/2*(sqrt(4*((2^i)*x+1)^2-N)+1)
if(IsInteger(y)){
P=[(2*((2^i)*x+1))-(2*y-1)]
Q=[(2*((2^k)*x+1))+(2*y-1)]
if( (P mod n)!=0 && (Q mod n)!=0){
p=MCD(n,P)
q=n/p
break
}
}
i++;
}
Output p & q
28/10/2021, 09:13
P_1_6 ha scritto:Input : un numero dispari fattorizzabile
partiamo da $i =1$
$step1$ : portiamo l'input nella forma $N=4*((2^i)*w)+3$ questo modo:
se $N-3 mod 2^(i+1)$ è diverso da $0$ moltiplichi $N$ per $2^i+1$ e cioè $N=N*(2^i+1)$
Se la nostra $y$ verifica questa disequazione
$4*((2^i)*x+1)^2>=4*((2^i)*x+1)^2-(2*y-1)^2=N>4*((2^i)*(x-1)+1)^2$
significa che $N$ è compreso li in mezzo
$step2$ : ci calcoliamo $x$ in questo modo da $4*((2^i)*a+1)^2=N$
$->$ $a=(sqrt(N)-2)/(2*(2^i))$
$x=($integer$(a))+1$
dove integer$(a)$ significa partei ntera inferiore di $a$
$step3$ : ci calcoliamo da $4*((2^i)*x+1)^2-(2*y-1)^2=N$ la $y$
$y=1/2*(sqrt(4*((2^i)*x+1)^2-N)+1)$
$step4$ : se IsInteger$(y)$ e cioè se $y$ è un intero significa che avremo una qualsiasi fattorizzazione dell'$N$
trasformato fino a questo momento nella fattorizzazione $P*Q$
dove $P=[(2*((2^i)*x+1))-(2*y-1)]$ ; $Q=[(2*((2^i)*x+1))+(2*y-1)]$
$step5$ : Se $P=s*p$ e $Q=t*q$ dove $p$ e $q$ sono i fattori iniziali dell'input $n$
allora $p=MCD(n,P)$ ; $q=n/p$
se lo $step5$ è vero allora $break$ [hai finito] altrimenti incrementa $i$ di una unità e riparti dallo $step1$
28/10/2021, 09:36
hydro ha scritto:
Ok ci rinuncio, continua a capirsi molto poco. Spuntano fuori variabili senza introduzione, l'input non ha nome, non ci sono quantificatori, non si capisce. L'unica cosa che si capisce è che vuoi scrivere $N$ come differenza di quadrati. Che è la stessa identica cosa del metodo di Fermat.
P_1_6 ha scritto:hydro ha scritto:Un consiglio: nessuno leggerà mai quel codice. Devi descrivere a parole, e soprattutto in modo chiaro e non ambiguo, qual è l'input, quali sono gli step, e qual è l'output. Ti faccio un esempio. Il metodo di Fermat funziona così: l'input è un intero positivo $N$. L'algoritmo fa la cosa seguente: calcola $\sqrt{N}$, la arrotonda per eccesso trovando un intero $a$ e poi calcola $a^2-N$. Se questo è un quadrato $b^2$, l'algoritmo termina perchè $a-b$ è un fattore non banale di $N$, ed è l'output dell'algoritmo. Altrimenti, si ripete incrementando $a$ di 1, e così via. Ovviamente l'algoritmo termina al più quando $a=N$.
- Codice:
Input n //positive factorizable integer odd
N=n
int i = 1
while(1){
if ( (N-3) mod (2^(i+1)) !=0 ){
N=N*((2^i)+1)
}
a=(sqrt(N)-2)/(2*(2^i))
x=(integer(a))+1
y=1/2*(sqrt(4*((2^i)*x+1)^2-N)+1)
if(IsInteger(y)){
P=[(2*((2^i)*x+1))-(2*y-1)]
Q=[(2*((2^k)*x+1))+(2*y-1)]
if( (P mod n)!=0 && (Q mod n)!=0){
p=MCD(n,P)
q=n/p
break
}
}
i++;
}
Output p & q
Input : un numero dispari fattorizzabile
partiamo da $i =1$
$step1$ : portiamo l'input nella forma $N=4*((2^i)*w)+3$ questo modo:
se $N-3 mod 2^(i+1)$ è diverso da $0$ moltiplichi $N$ per $2^i+1$ e cioè $N=N*(2^i+1)$
Se la nostra $y$ verifica questa disequazione
$4*((2^i)*x+1)^2>=4*((2^i)*x+1)^2-(2*y-1)^2=N>4*((2^i)*(x-1)+1)^2$
significa che $N$ è compreso li in mezzo
$step2$ : ci calcoliamo $x$ in questo modo da $4*((2^i)*a+1)^2=N$
$->$ $a=(sqrt(N)-2)/(2*(2^i))$
$x=($integer$(a))+1$
dove integer$(a)$ significa partei ntera inferiore di $a$
$step3$ : ci calcoliamo da $4*((2^i)*x+1)^2-(2*y-1)^2=N$ la $y$
$y=1/2*(sqrt(4*((2^i)*x+1)^2-N)+1)$
$step4$ : se IsInteger$(y)$ e cioè se $y$ è un intero significa che avremo una qualsiasi fattorizzazione dell'$N$
trasformato fino a questo momento nella fattorizzazione $P*Q$
dove $P=[(2*((2^i)*x+1))-(2*y-1)]$ ; $Q=[(2*((2^i)*x+1))+(2*y-1)]$
$step5$ : Se $P=s*p$ e $Q=t*q$ dove $p$ e $q$ sono i fattori iniziali dell'input $n$
allora $p=MCD(n,P)$ ; $q=n/p$
se lo $step5$ è vero allora $break$ [hai finito] altrimenti incrementa $i$ di una unità e riparti dallo $step1$
Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000—
Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.
Powered by phpBB © phpBB Group - Privacy policy - Cookie privacy
phpBB Mobile / SEO by Artodia.