Aiuto su Teoria Dei Numeri
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$
[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 ?
se $N-3 mod 2^(i+1)$ è diverso da $0$ moltiplichi per $N$ per $2^i+1$
con i che parte da $1$ ed arriva a $k+1$
[Aiuto3]
Questa relazione
$4*((2^k)*x+1)^2>=4*((2^k)*x+1)^2-(2*((2^(k))*y)-1)^2>4*((2^k)*(x-1)+1)^2$
ci dice quanto deve essere piccola $y$ rispetto ad $x$ conoscendo $k$
Si potrebbe creare un algoritmo di fattorizzazione che per ogni step di $i+1$ del secondo aiuto [Aiuto2]
se $y$ verifica quella disequazione e si trova in $O(1)$ il valore di $x$ e quindi $2$ fattori $P$ e $Q$ taliche $P=p*s$ e $Q=q*t$
dove $p$ e $q$ sono i fattori del numero dispari iniziale e quindi facendo massimo comun divisore tra il numero iniziale e $P$ o $Q$ troveremmo $p$ e $q$
il tutto aumentando $i$ di un unità ad ogni step fino ad un $k$ che ci riveli la fattorizzazione $p*q$ ?
[Aiuto4]
Termina sicuramente l'algoritmo creato?
Qual è la complessità computazionale per fattorizzare un numero dispari $N=p*q$ ?
E' forse casuale questa complessità?
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$
[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 ?
se $N-3 mod 2^(i+1)$ è diverso da $0$ moltiplichi per $N$ per $2^i+1$
con i che parte da $1$ ed arriva a $k+1$
[Aiuto3]
Questa relazione
$4*((2^k)*x+1)^2>=4*((2^k)*x+1)^2-(2*((2^(k))*y)-1)^2>4*((2^k)*(x-1)+1)^2$
ci dice quanto deve essere piccola $y$ rispetto ad $x$ conoscendo $k$
Si potrebbe creare un algoritmo di fattorizzazione che per ogni step di $i+1$ del secondo aiuto [Aiuto2]
se $y$ verifica quella disequazione e si trova in $O(1)$ il valore di $x$ e quindi $2$ fattori $P$ e $Q$ taliche $P=p*s$ e $Q=q*t$
dove $p$ e $q$ sono i fattori del numero dispari iniziale e quindi facendo massimo comun divisore tra il numero iniziale e $P$ o $Q$ troveremmo $p$ e $q$
il tutto aumentando $i$ di un unità ad ogni step fino ad un $k$ che ci riveli la fattorizzazione $p*q$ ?
[Aiuto4]
Termina sicuramente l'algoritmo creato?
Qual è la complessità computazionale per fattorizzare un numero dispari $N=p*q$ ?
E' forse casuale questa complessità?
Risposte
Mi è venuto in mente questo altro algoritmo che aumenta computazionalmente ogni step però potrebbe essere utile per qualche numero
Credo nei prossimi giorni vedrò meglio quest'altra strada
Input n //positive factorizable integer odd N=n int i = 1 int check = 0 while(1){ if ( (N-3) mod (2^(i+1)) !=0 ){ N=N*((2^i)+1) check=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 return p & q } } while (a>=1 && check == 1){ a=a/2 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 return p & q } } } check = 0 i=i+1 } Output p & q
Credo nei prossimi giorni vedrò meglio quest'altra strada
"P_1_6":
Si potrebbe tentare quest'altra strada per portare $N$ nella forma $4*((2^b)*w)+3$
Trovare l'espressione di $z$ qui
$N*z=4*((2^b)*w)+3$ per un opportuno $b$
ed una volta calcolato $x$ da $4*((2^b)*x+1)^2=N*z$
tentare un ,spero piccolo, Bruteforce su $x$
[xdom="Martino"]Io intanto chiudo. Mi sembra che hai ricevuto risposte a sufficienza.[/xdom]