Algoritmi sui numeri primi.

Il ritrovo della comunità dove confrontarsi e discutere sulle notizie dal mondo dell'informatica, di Ubuntu e di tutto quello che la riguarda, novità, pettegolezzi e quant'altro.
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

NON CORRETTO .
L'algoritmo corretto si trova qui:
http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4753150

6001=353*17=6001
controllo 6001/6=1000,166666
X^2+n*(X*6)=6001
n*X=(6001 – X^2)/6
n*X=1000-k


n

a.1) 1000 - 6h^2+10h+4=P

b.1) 1000 - 6h^2+2h=P

per entrambe, l'equazione trasformata è X^2+n*(X*12)=6001 perchè sono entrambe pari


n/2


1.a) h=D 500-[h(3h+5)+2]=P

1.b) h=P 500-[h(3h+5)+2]=P

1.c) h=D 500-h(3h+1)=P

1.d) h=P 500-h(3h+1)=P

per tutte, l'equazione trasformata è X^2+n*(X*24)=6001 perchè sono tutte pari

Hai ragione non riesco a scendere più di questo
Quindi fino a quà è sempre vero quindi per ora l'equazione è X^2+n*(X*24)=6001
quindi troverà la X in (Y-X)/24, per ora.
Credi che fino a quà sia una buona cosa? esiste qualcosa di meglio?Mi posti il link per favore.
---------------------------------------------------------------------------------------------------------------------------------------------------

In effetti si può scendere di un altro scalino (ti spiego)

siccome 500 è pari e n/2 è pari significa che k/2 è pari.
quindi dividendo tutto per 2 abbiamo la certezza che k/4 è un intero(ma non sappiamo se è pari o dispari)
quindi siccome quindi se facciamo 250/2=125 è intero sappiamo che k/4 è pari.

quindi abbiamo che 250-k/4=pari
Ultima modifica di P_1_6 il lunedì 4 maggio 2015, 8:12, modificato 1 volta in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Algoritmi sui numeri primi.

Messaggio da Zoff »

Se cerchi materiale accademico con google ne hai fin che vuoi, alcuni link:
Computing the RSA secret Key is Deterministic Polynomial Time equivalent to Factoring): presentazione, paper completo
Small Solutions to Polynomial Equations, and Low Exponent RSA Vulnerabilities
Polynomials and Cryptography
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

NON CORRETTO .
L'algoritmo corretto si trova qui:
http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4753150


beh allora google punterà al forum ubuntu d'ora in poi.
Siccome sei stato gentile posto la soluzione qui anche prima di metterla sul sito.
ti posto prima gli esempi e tra qualche ora ti posto la spiegazione, sono sicuro ci arriverai da solo.

Esempi:

NR = 3007 n = 11
501 dispari 11 dispari
250.5 pari 5.5 dispari
125.0 dispari 2.5 pari
62.5 pari
.......
....

NR = 6511 n = 61
1085 dispari 61 dispari
542.5 pari 30.5 pari
271.0 dispari 15.0 dispari
135.5 dispari 7.5 dispari
67.5 dispari 3.5 dispari
........
.....

NR = 505 n = 16
84 pari 16 pari
42.0 pari 8.0 pari
21.0 dispari 4.0 pari
10.5 pari 2.0 pari
5.0 dispari
.....
...

NR = 6001 n = 56
1000 pari 56 pari
500.0 pari 28.0 pari
250.0 pari 14.0 pari
125.0 dispari 7.0 dispari
62.5 pari 3.5 dispari
31.0 dispari
.....
...

Questo lo continui chi ha capito
NR=7201 n=60
1200
600
300
150
75
37,5
18,5
9
4,5
2
1
Ultima modifica di P_1_6 il lunedì 4 maggio 2015, 8:13, modificato 1 volta in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Algoritmi sui numeri primi.

Messaggio da Zoff »

Non hai spiegato nulla.
A giudicare dai passaggi dai nuovamente per scontato la selezione di UNA delle infinite soluzioni dell'equazione senza dare un motivo valido.
Piu' che "beh allora google punterà al forum ubuntu d'ora in poi" secondo me stai perdendo di credibilità, che già per il modo estremamente disordinato, per gli errori qua e la e la terminologia completamente fuori dal contesto matematico-accademico era bassissima.

Io ci ho provato, ma ci rinuncio nuovamente.
Non fornisci prove, non spieghi algoritmi, scrivi solo sequenze di numeri e formule che "ti passano per la testa".
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

NON CORRETTO .
L'algoritmo corretto si trova qui:
http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4753150


ok ti do l'algoritmo completo (anche se volevo farti giocare un pò)
1)fai la divisione per 6 di NR-1 fino ad uno, i decimali devono essere solo 0,0 oppure 0,5
esempio
NR=7201 n=60
1200
600
300
150
75
37,5
18,5
9
4,5
2
1

2)prendi l'insieme{2;2,5;3;3,5} e sottrai uno per volta dall'ultimo numero del esempioche chiamiamoNR1. Il risultato della sottrazione chiamiamolo k1.
quindi fai n2=NR2-(k1*2)
se n2 è compreso tra {4;4,5;5;5,5;6;6,5;7;7,5}continui
e così via per n3 ecc. ecc.
se arrivi fino in cima significa ti calcoli n e lo sostituisci nell'equazione;
se non va bene riinizi da un gradino sopra;
Svolgimento:

NR=7201 n=60
1200 304 {266; ;531,5} P }
600 152 896 {128; ;255,5} P
300 76 448 {64; ;127,5} P
150 38 224 {32; ;63,5} P
75 75-56=19 56*2=112 {16................31,5} D
37,5 37,5-28=9,5 28*2=56 {8;.........15,5} D
18,5 18,5-14=4,5 ; 14*2=28 {4;........7,5} P
9 9-2=7 ;7*2=14 D
4,5wrong
2 wrong
1wrong

non va bene devi riiniziare da 9 provare con 2,5
Ultima modifica di P_1_6 il lunedì 4 maggio 2015, 8:13, modificato 2 volte in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Algoritmi sui numeri primi.

Messaggio da Zoff »

Ma per favore... "volevo farti giocare".
n=60 da dove lo trovi?

Vedi tu se rispondere, io per certo non perderò altro tempo...
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

NON CORRETTO .
L'algoritmo corretto si trova qui:
http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4753150


Scusami se sono stato frainteso.
"volevo farti giocare" == "volevo farti divertire"

Ora cerco di spiegarlo meglio, spero.


Algoritmo

7201

1) controlliamo se 7201/6=G,16666=OK

2) facciamo la divisione per 6 di NR-1 fino ad uno, i decimali devono essere solo 0,0 oppure 0,5

(7201-1)/6=1200

3) dividiamo per 2 fino ad uno, i decimali devono essere solo 0,0 oppure 0,5

NR=7201
1200
600
300
150
75
37,5
18,5
9
4,5
2
1

4) prendiamo l'insieme{ 2 ; 2,5 ; 3; 3,5 } e sottraiamo uno per volta dal terzo numero a partire da sotto (e cioè 4,5) che chiamiamo NR1.

Il risultato della sottrazione chiamiamolo k1.
quindi fai n2=NR2-(k1*2)
se n2 è compreso tra {4;4,5;5;5,5;6;6,5;7;7,5}continui
e così via per n3 ecc. ecc.
Quando arrivi in cima in cima sostituisci la n nell'equazione;
se non va bene riinizi dallo step successivo;

La 4) equivale a dire

prendiamo l'insieme{ 2 ; 2,5 ; 3; 3,5 } e sottraiamo uno per volta dal terzo numero a partire da sotto (e cioè 4,5) che chiamiamo NR1.

Il risultato della sottrazione chiamiamolo k1.
Quindi basta fare RIS=k1 *(2^PROF) dove PROF è la profondità dell'elemento partendo da nel nostro esempio

1200 ha PROF=0

600 ha PROF=1

300 ha PROF=2

ecc.ecc.

1200-RIS=Nvirtuale

da Nvirtuale dobbiamo togliere 1,2,4,8,16,32,64, ecc.ecc. fino alla posizione PROF

ovvero per 4,5 dobbiamo togliere 1,2,4,8,16,32,64,128

e testare l'equazione per

Nvirtuale

Nvirtuale + 1

Nvirtuale + 2

Nvirtuale +4

Nvirtuale +8

Nvirtuale +16

Nvirtuale +32

Nvirtuale +64

Nvirtuale +128

------------------------------------------------------------------------------------------------------------------------------------------------------------------

ESEMPI:

7201

7201/6=1200,1666...

(7201-1)/6=1200

NR=7201
1200
600
300
150
75
37,5
18,5
9
4,5

Proviamo con 2 partendo da 4,5

(4,5-2)*2^8=640=RIS

1200-640=560=Nvirtuale

proviamo l'equazione per

Nvirtuale

Nvirtuale + 1

Nvirtuale + 2

Nvirtuale +4

Nvirtuale +8

Nvirtuale +16

Nvirtuale +32

Nvirtuale +64

Nvirtuale +128

e non va bene

non va bene devi riiniziare da 4,5 provare con 2,5
non va bene devi riiniziare da 4,5 provare con 3
non va bene devi riiniziare da 4,5 provare con 3,5

non va bene devi riiniziare da 9 provare con 2
non va bene devi riiniziare da 9 provare con 2,5
non va bene devi riiniziare da 9 provare con 3
non va bene devi riiniziare da 9 provare con 3,5

non va bene devi riiniziare da 18,5 provare con 2
non va bene devi riiniziare da 18,5 provare con 2,5
non va bene devi riiniziare da 18,5 provare con 3
non va bene devi riiniziare da 18,5 provare con 3,5

non va bene devi riiniziare da 37,5 provare con 2
non va bene devi riiniziare da 37,5 provare con 2,5
non va bene devi riiniziare da 37,5 provare con 3
non va bene devi riiniziare da 37,5 provare con 3,5

non va bene devi riiniziare da 75 provare con 2
non va bene devi riiniziare da 75 provare con 2,5
non va bene devi riiniziare da 75 provare con 3
non va bene devi riiniziare da 75 provare con 3,5

vediamo tutti i passaggi da 75 provando con 3,5

(75-3,5)*2^4 =1144=RIS

1200-RIS=Nvirtuale=56

Nvirtuale

Nvirtuale +1

Nvirtuale +2

Nvirtuale + 4

Nvirtuale + 8

testiamo l'equazione

X^2 + (6 * 60 * X) =7201

e troviamo per [1200-Nvirtuale + 4] che X=19

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Per i casi NR/6=k,83333 ci si comporta analogamente.
Ultima modifica di P_1_6 il lunedì 4 maggio 2015, 8:14, modificato 1 volta in totale.
caturen
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 18034
Iscrizione: giovedì 8 aprile 2010, 18:41
Desktop: diversi
Distribuzione: debian

Re: Algoritmi sui numeri primi.

Messaggio da caturen »

a volte ritornano
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

NON CORRETTO .
L'algoritmo corretto si trova qui:
http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4753150


Vi posto l'algoritmo corretto, mi date un parere cortesemente.

Algoritmo

7201

1) controlliamo se 7201/6=G,16666=OK

2) facciamo la divisione per 6 di NR-1 fino ad uno, i decimali devono essere solo 0,0 oppure 0,5

(7201-1)/6=1200

3) dividiamo per 2 fino ad uno, i decimali devono essere solo 0,0 oppure 0,5

NR=7201
1200
600
300
150
75
37,5
18,5
9
4,5
2
1

4) prendiamo l’insieme{ 2 ; 2,25 ; 2,5 ; 2,75 ; 3 ; 3,25 ; 3,5 ; 3,75} e sottraiamo uno per volta dal terzo numero a partire da sotto (e cioè 4,5) che chiamiamo NR1.

Il risultato della sottrazione chiamiamolo k1.
quindi fai n=k1*2^PROF dove PROF è la profondità cioè

1200->PROF=0

600->PROF=1

300->PROF=2

ecc.ecc.
sostituiamo n nell’equazione;
se non va bene riinizi dallo step successivo; se va bene il gioco è fatto.

——————————————————————————————————————————————————————

ESEMPI:

7201

7201/6=1200,1666…

(7201-1)/6=1200

NR=7201
1200
600
300
150
75
37,5
18,5
9
4,5

Proviamo con 2

4,5-2=2,5

2,5*(2^8)=640

1200-640=560

per n=560

X^2 + (6 * 560 * X) =7201

non abbiamo soluzioni intere quindi non va bene

non va bene devi riiniziare da 4,5 provare con 2,25
non va bene devi riiniziare da 4,5 provare con 2,5
non va bene devi riiniziare da 4,5 provare con 2,75
non va bene devi riiniziare da 4,5 provare con 3
non va bene devi riiniziare da 4,5 provare con 3,25
non va bene devi riiniziare da 4,5 provare con 3,50
non va bene devi riiniziare da 4,5 provare con 3,75

non va bene devi riiniziare da 9 provare con 2
non va bene devi riiniziare da 9 provare con 2,25
non va bene devi riiniziare da 9 provare con 2,5
non va bene devi riiniziare da 9 provare con 2,75
non va bene devi riiniziare da 9 provare con 3
non va bene devi riiniziare da 9 provare con 3,25
non va bene devi riiniziare da 9 provare con 3,50
non va bene devi riiniziare da 9 provare con 3,75

non va bene devi riiniziare da 18,5 provare con 2
non va bene devi riiniziare da 18,5 provare con 2,25
non va bene devi riiniziare da 18,5 provare con 2,5
non va bene devi riiniziare da 18,5 provare con 2,75
non va bene devi riiniziare da 18,5 provare con 3
non va bene devi riiniziare da 18,5 provare con 3,25
non va bene devi riiniziare da 18,5 provare con 3,50
non va bene devi riiniziare da 18,5 provare con 3,75

non va bene devi riiniziare da 37,5 provare con 2
non va bene devi riiniziare da 37,5 provare con 2,25
non va bene devi riiniziare da 37,5 provare con 2,5
non va bene devi riiniziare da 37,5 provare con 2,75
non va bene devi riiniziare da 37,5 provare con 3
non va bene devi riiniziare da 37,5 provare con 3,25
non va bene devi riiniziare da 37,5 provare con 3,5
non va bene devi riiniziare da 37,5 provare con 3,75

non va bene devi riiniziare da 75 provare con 2
non va bene devi riiniziare da 75 provare con 2,25
non va bene devi riiniziare da 75 provare con 2,5
non va bene devi riiniziare da 75 provare con 2,75
non va bene devi riiniziare da 75 provare con 3
non va bene devi riiniziare da 75 provare con 3,25
non va bene devi riiniziare da 75 provare con 3,5
non va bene devi riiniziare da 75 provare con 3,75

vediamo tutti i passaggi da 75 provando con 3,75

75-3,75=71,25

71,25*(2^4)=1144

1200-1144=60

per n=60

X^2 + (6 * 60 * X) =7201

e troviamo X=19
Ultima modifica di P_1_6 il lunedì 4 maggio 2015, 8:14, modificato 1 volta in totale.
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

Algoritmo corretto.

Fattorizzazione e test di primalità di Lepore-Santo in al massimo logaritmo di (Y-X)/6
Vi mostrerò l'esempio base cioè la fattorizzazione di due numeri primi perchè reiterando il processo si può fattorizzare qualsiasi tipo di numero.
Ogni numero NR (non muliplo di 2 e di 3 ) diviso sei da come decimali 1666p e 8333p (p sta per periodico) poichè per ogni NR modulo sei si avrà

1/6= 0,1666p

il 2 è divisibile per 2

il 3 divisibile per 3

il 4 divisibile per 2

5/6=0,8333p

il 6 divisibile per 2 e per 3

e ciò equivale a dire che partendo da 1 si deve fare una volta +4 una volta +2 e quindi l’insieme dei numeri non muliplo di 2 e di 3 sarà:

1
1+4=5
5+2=7
7+4=11
11+2=13
13+4=17
17+2=19
19+4=23
23+2=25
25+4=29
29+2=31
…..
…..
ecc.ecc.

quindi si può vedere questo:

5*5; 25+(1*30) ; 25+(2*30); 25+(3*30); ecc.
5*7; 35+(1*30) ; 35+(2*30); 35+(3*30); ecc.
7*7; 49+(1*42); 49+(2*42); ecc. ecc.
7*11; 77+(1*42); 77+(2*42); ecc. ecc.

Da ciò possiamo ricavare le tre equazioni:

X^2+n*(X*6)=NR
X*(X+2)+n(X*6)=NR
X*(X+4)+n(X*6)=NR

dove n=(Y-X)/6 nella prima equazione
n=(Y-X-2)/6 nella seconda equazione
n=(Y-X-4)/6 nella terza equazione

Quindi se troviamo il valore di n troviamo X.

Infine diciamo che ogni numero dispari X, non multiplo di 3 si può scrivere sotto la forma:

X=6h+1 ed X=6h+5

----------------------------------------------------------------------------------
Da qui in poi l'algoritmo è stato migliorato e si trova qui
http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4754170


Dividiamo i casi :

un numero NR=X*Y

1) se NR=6K+1 utilizzeremo la prima equazione e cioè X^2+6nX=NR

2) NR=6K+5 dovremmo utilizzare entrambe le equazioni, ma questo caso si rifà al primo caso 1)



Il primo caso 1) si divide in due casi

1.1) X e Y sono entrambi nella forma 6h+1

1.2) X e Y sono entrambi nella forma 6h+5



Dividiamo il caso 1.1) in

1.1.1) h è dispari

1.1.2) h è pari



Dividiamo il caso 1.1.2) in

1.1.2.1) h è pari ed è nella forma 2f con f dispari

1.1.2.2) h è pari ed è nella forma 2f con f pari



Dividiamo il caso 1.2) in

1.2.1) h è dispari

1.2.2) h è pari



Dividiamo il caso 1.2.2) in

1.2.2.1) h è pari ed è nella forma 2f con f dispari

1.2.2.2) h è pari ed è nella forma 2f con f pari



Ve li dimostrerò tutti i casi iniziamo da 1.2)



Prendiamo come esempio NR=6001=17*353

X^2+6nX=6001 dobbiamo testare per n=1 e non da X intero quindi continuiamo

dobbiamo testare quindi la 1) quindi 1.1) e 1.2) quindi 1.1.1) e 1.1.2) e 1.2.1) e 1.2.2) quindi quindi i casi da testare saranno 4*2=8.

Io vi farò vedere solo il caso giusto 1.2) X e Y sono entrambi nella forma 6h+5 e 1.2.2) h è pari e 1.2.2.1) h è pari ed è nella forma 2f con f dispari

Quindi testiamo X=6h+5 con h pari.

sostituiamo ad X , 6h+5 ed avremo:

36h^2 + 60h +25 +6nX=6001

sottraiamo -1 da entrambe le parti e dividiamo tutto per 6

6h^2 + 10h +4 +nX=1000

da ciò si può notare che n è pari poichè abbiamo detto che h è pari , X è dispari e 1000 è pari

quindi dobbiamo dividere n per 2 che significa raddoppiare 6X e avremo

X^2+12nX=6001 dobbiamo testare per n=1 e non da X intero quindi continuiamo

36h^2 + 60h +25 +12nX=6001

sottraiamo -1 da entrambe le parti e dividiamo tutto per 12

3h^2 + 5h +2 +nX=500 quindi n è pari

quindi dobbiamo dividere n per 2 che significa raddoppiare 12X e avremo

X^2+24nX=6001 dobbiamo testare per n=1 e non da X intero quindi continuiamo

36h^2 + 60h +25 +24nX=6001

sottraiamo -1 da entrambe le parti e dividiamo tutto per 24

1,5h^2 + 2,5h + 1 + nX=250 quindi se h è pari con h=2f con f dispari,

segue che n è pari

quindi dobbiamo dividere n per 2 che significa raddoppiare 24X e avremo

X^2+48nX=6001 dobbiamo testare per n=1 e non da X intero quindi continuiamo

36h^2 + 60h +25 +48nX=6001

sottraiamo -1 da entrambe le parti e dividiamo tutto per 48

0,75h^2 + 1,25h + 0,5 + nX=125 quindi l’unico valore può essere h=2 ma continuiamo

quindi n è dispari

quindi dobbiamo sottrarre 1 ad n che significa aggiunger 48X

e poi dobbiamo dividere n per 2 che significa raddoppiare 48X e avremo

X^2+96nX +48X=6001 dobbiamo testare per n=1 e non da X intero quindi continuiamo

ora c'è anche 48X che è uguale a 48*(6h+5)=288h + 240 quindi sostituiamo

36h^2 + 60h +25 +96nX + 288h + 240 =6001

sottraiamo -1 da entrambe le parti e dividiamo tutto per 96

0,375h^2 + 0,625h + 0,25 + nX + 3h + 2,5 =62,5

portiamo il 2,5 dall'altra parte e avremo (questo lo faccio solo per semplificare)

0,375h^2 + 0,625h + 0,25 + nX + 3h =60 qui h può essere soltanto 2 quindi potremmo fermarci ma continuiamo

segue che n è dispari

quindi dobbiamo sottrarre 1 ad n che significa aggiunger 96X

e poi dobbiamo dividere n per 2 che significa raddoppiare 96X e avremo

X^2+192nX + 96 X+ 48X=6001 che per n =1

X^2+336X =6001 darò X=17

quindi abbiamo finito gli altri casi ve li faccio vedere tra qualche giorno.

--------------------------------------------------------------------------------------------------------------------------------------------------------



Alberico Lepore, Ruggiero Santo 02/05/2015
http://howtodecodersa.altervista.org/te ... re-in-log/
Ultima modifica di P_1_6 il martedì 5 maggio 2015, 7:30, modificato 7 volte in totale.
caturen
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 18034
Iscrizione: giovedì 8 aprile 2010, 18:41
Desktop: diversi
Distribuzione: debian

Re: Algoritmi sui numeri primi.

Messaggio da caturen »

quindi abbiamo finito gli altri casi ve li faccio vedere tra qualche giorno.
non sto nella pelle dalla voglia di vederli :sisi: :sisi:
Avatar utente
DragonLife
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 250
Iscrizione: giovedì 28 agosto 2014, 20:03
Desktop: Unity
Distribuzione: Ubuntu 14.04.1 LTS x86_64

Re: Algoritmi sui numeri primi.

Messaggio da DragonLife »

Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4699216#p4699216][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Non credo di aver capito cosa intendi.

5 , 5+2=7 , 7+4=11 ,11+2=13 , 13+4=17, 17+2=19, 19+4=25 (NON PRIMO!)
In realtà vedo che l'algoritmo funziona, l'ultimo calcolo lo hai sbagliato: 19+4=23 non 25 e 23 è un numero primo.
Dragonlife
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

grazie per la tua opinione
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Algoritmi sui numeri primi.

Messaggio da Zoff »

DragonLife [url=http://forum.ubuntu-it.org/viewtopic.php?p=4753560#p4753560][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4699216#p4699216][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Non credo di aver capito cosa intendi.

5 , 5+2=7 , 7+4=11 ,11+2=13 , 13+4=17, 17+2=19, 19+4=25 (NON PRIMO!)
In realtà vedo che l'algoritmo funziona, l'ultimo calcolo lo hai sbagliato: 19+4=23 non 25 e 23 è un numero primo.
Ehm... scrivendo ho saltanto un passaggio che avevo fatto a mente:
5 , 5+2=7 , 7+4=11 ,11+2=13 , 13+4=17, 17+2=19, 19+4=23, 23+2=25 (NON PRIMO!)
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
DragonLife
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 250
Iscrizione: giovedì 28 agosto 2014, 20:03
Desktop: Unity
Distribuzione: Ubuntu 14.04.1 LTS x86_64

Re: Algoritmi sui numeri primi.

Messaggio da DragonLife »

Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4753686#p4753686][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
DragonLife [url=http://forum.ubuntu-it.org/viewtopic.php?p=4753560#p4753560][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4699216#p4699216][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Non credo di aver capito cosa intendi.

5 , 5+2=7 , 7+4=11 ,11+2=13 , 13+4=17, 17+2=19, 19+4=25 (NON PRIMO!)
In realtà vedo che l'algoritmo funziona, l'ultimo calcolo lo hai sbagliato: 19+4=23 non 25 e 23 è un numero primo.
Ehm... scrivendo ho saltanto un passaggio che avevo fatto a mente:
5 , 5+2=7 , 7+4=11 ,11+2=13 , 13+4=17, 17+2=19, 19+4=23, 23+2=25 (NON PRIMO!)
Ah, hai ragione, excuse moi :muro:
Dragonlife
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

Miglioramento dell'algoritmo

Miglioramento dell'algoritmo

dividiamo solo tra pari e dispari (ma anche questa distinzione può essere eliminata) per comodità



vi faccio il solito esempio di 6001 con h pari

vado un po veloce ma sono sicuro di farmi capire

Immaginate un albero binario al primo livello per ogni tipo di pari non cambia niente quindi n in questo caso è pari,
X^2+6nX=6001
6h^2 + 10h +4 +nX=1000 n è pari


al secondo livello per ogni tipo di pari non cambia niente quindi n in questo caso è pari,
X^2+12nX=6001
3h^2 + 5h +2 +nX=500 n è pari se h è pari quindi procediamo in entrambi i casi


al terzo livello si fa la distinzione tra h=2k e k è dispari e h=2k e k è pari
h pari
X^2+24nX=6001
1,5h^2 + 2,5h + 1 + nX=250 n è pari se h=2k e k è dispari ed n è dispari se h=2k e k è pari quindi procediamo in entrambi i casi


dal quarto livello in poi parte il vero e proprio algoritmo si fa la distinzione tra h=2k e k=2f con f pari e n è dispari con h=2k e k=2f con f dispari se il ramo è pieno ovvero non ci sono risultati impossibili allora non è il ramo giusto se il ramo non è pieno cioè ha una soluzione impossibile allora è il ramo giusto
h=2k con k pari
X^2+48nX+24X=6001
0,75h^2 + 1,25h + 0,5 + nX +3h+2,5=125 n è pari con h=2k e k=2f con f pari e n è dispari con h=2k e k=2f con f dispari continuiamo

se avessimo provato n è pari con h=2k e k=2f con f pari e n è dispari con h=2k e k=2f con f dispari in entrambi i casi avremmo avuto soluzioni quindi non è il ramo giusto

h=2k con k dispari
X^2+48nX=6001
0,75h^2 + 1,25h + 0,5 + nX =125 n è dispari con h=2k e k=2f+1 con f pari e n è pari con h=2k e k=2f+1 con f dispari continuiamo

se avessimo provato n è pari con h=2k e k=2f+1 con f dispari n risulterebbe non intero quindi è impossibile quindi questo è il ramo giusto


h=2k e k=2f+1 con f pari
X^2+96nX+24X=6001
0,375h^2 + 0,625h + 0,25 + nX + 1,5h + 1,25 =62,5 n è dispari con h=2k e k=2f+1 e f=2d con d pari e n risulterebbe non intero con h=2k e k=2f+1 e f=2d con d dispari pari quindi abbiamo una soluzione impossibile siamo sul ramo giusto



h=2k con h=2k e k=2f+1 e f=2d con d pari
X^2+192nX + 96 X+ 48X=6001 che per n =1

X^2+336X =6001 darà X=17



1)vedere se un equazione é pari o dispari è molto semplice

basta mettere al posto di k i valori di 1 e 2

al posto di f i valori 1 e 2

e così via

2)dal quarto livello in poi se un ramo ha due sotto rami completi non è il ramo giusto

se un ramo ha un sottoramo impossibile allora è il ramo giusto



Spero non ci siano errori

----------------------------------------------------------------------------------------------------------------------------------------------

Alberico Lepore, Ruggiero Santo 05/05/2015
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

Test di primalità di Lepore-Santo in O(k)
http://howtodecodersa.altervista.org/te ... nto-in-ok/
Avatar utente
DragonLife
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 250
Iscrizione: giovedì 28 agosto 2014, 20:03
Desktop: Unity
Distribuzione: Ubuntu 14.04.1 LTS x86_64

Re: Algoritmi sui numeri primi.

Messaggio da DragonLife »

Dragonlife
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Algoritmi sui numeri primi.

Messaggio da P_1_6 »

Se vuoi i primi fino ad N
Prova a generare i numeri 6h+1 e 6h+5 e avrai N/3.
Poi prendi uno per volta i numeri generati G e mettili al posto di X qui X^2+n*(X*6)=NR
Se il prossimo numero generato è +2 metti G quì
X*(X+2)+n(X*6)=NR
Se il prossimo numero generato è +4 metti G quì
X*(X+4)+n(X*6)=NR
Non ti dimenticare di farlo fino a radice quadrata.
Poi confrontalo con tutti i crivelli esistenti e fammi sapere.

http://www.albericolepore.org/crivello-di-lepore/
Avatar utente
DragonLife
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 250
Iscrizione: giovedì 28 agosto 2014, 20:03
Desktop: Unity
Distribuzione: Ubuntu 14.04.1 LTS x86_64

Re: Algoritmi sui numeri primi.

Messaggio da DragonLife »

P_1_6 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4756271#p4756271][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Se vuoi i primi fino ad N
Prova a generare i numeri 6h+1 e 6h+5 e avrai N/3.
Poi prendi uno per volta i numeri generati G e mettili al posto di X qui X^2+n*(X*6)=NR
Se il prossimo numero generato è +2 metti G quì
X*(X+2)+n(X*6)=NR
Se il prossimo numero generato è +4 metti G quì
X*(X+4)+n(X*6)=NR
Non ti dimenticare di farlo fino a radice quadrata.
Poi confrontalo con tutti i crivelli esistenti e fammi sapere.

http://www.albericolepore.org/crivello-di-lepore/
Non ho letto tutto e sinceramente non ne ho voglia, quindi non so cosa rappresenti h e cosa rapperesenti G... Comunque mi sebra un "casino"... Quello di Eratostene è semplicissimo.
Dragonlife
Scrivi risposta

Ritorna a “Bar Ubuntu”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti