Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-12-2013, 12:05   #1
mikeb90
Member
 
Iscritto dal: Nov 2008
Messaggi: 169
[C] Aiuto sviluppo Miller-Rabin

salve a tutti,
qualcuno potrebbe darmi una mano, una spiegazione "terra terra" di questo algoritmo? Ho inserito la dicitura del linguaggio C perchè dovrei creare un programma in quel linguaggio, ma in primis mi servirebbe capire che cribio fanno le parti di questo algo. Grazie in anticipo.
Codice:
Input: n > 2, an odd integer to be tested for primality;
       k, a parameter that determines the accuracy of the test
Output: composite if n is composite, otherwise probably prime
write n − 1 as 2s·d with d odd by factoring powers of 2 from n − 1
LOOP: repeat k times:
   pick a randomly in the range [2, n − 1]
   x ← ad mod n
   if x = 1 or x = n − 1 then do next LOOP
   for r = 1 .. s − 1
      x ← x2 mod n
      if x = 1 then return composite
      if x = n − 1 then do next LOOP
   return composite
return probably prime
mikeb90 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2013, 14:59   #2
bancodeipugni
Senior Member
 
L'Avatar di bancodeipugni
 
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3984
Quote:
Originariamente inviato da mikeb90 Guarda i messaggi
salve a tutti,
qualcuno potrebbe darmi una mano, una spiegazione "terra terra" di questo algoritmo? Ho inserito la dicitura del linguaggio C perchè dovrei creare un programma in quel linguaggio, ma in primis mi servirebbe capire che cribio fanno le parti di questo algo. Grazie in anticipo.
Codice:
Input: n > 2, an odd integer to be tested for primality;
       k, a parameter that determines the accuracy of the test
Output: composite if n is composite, otherwise probably prime
write n − 1 as 2s·d with d odd by factoring powers of 2 from n − 1
LOOP: repeat k times:
   pick a randomly in the range [2, n − 1]
   x ← ad mod n
   if x = 1 or x = n − 1 then do next LOOP
   for r = 1 .. s − 1
      x ← x2 mod n
      if x = 1 then return composite
      if x = n − 1 then do next LOOP
   return composite
return probably prime
potevano anche scrivere un testo in italiano

devi creare un filtro che in input riceve un intero dispari maggiore di 2 e verificare che sia un numero primo k un parametro indicatore dell'accuratezza del test

in uscita il programma deve saper dire se il numero è composto oppure probabilmente primo
scrivere n − 1 come 2s·d con d dispari della potenza del 2 -1 .... ma che cazzo è s ???

quindi:
ciclo da ripetere k volte (usa il for)
scegli un random nel range da 2 a n-1
x ← ad mod n ma che cazzo è ?? ad chi ??? devi fare una operazione di mod ... forse x mod n boh...
se x = 1 or x = n − 1 prosegui il ciclo altrimenti esci
altro ciclo
for r = 1 .. s − 1
x ← x2 mod n anche qui cazzo è ? x2 sarà xquadro penso...
se x = 1 allora esci con numero composto
altrimenti se x = n − 1 allora ripeti il primo ciclo (ti conviene fare una funzione e indicare globale qualcosa)
esci con composto
esci con probabile primo


mah... sei sicuro che il testo ci sia tutto ?
bancodeipugni è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2013, 15:08   #3
mikeb90
Member
 
Iscritto dal: Nov 2008
Messaggi: 169
la pagina da dove l'ho preso riportava la fonte come la pagina di wikipedia... ma ora che ci sono andato ed ho visto meglio, è lievemente diverso lo pseudocodice:
Codice:
Input: n > 3, an odd integer to be tested for primality;
Input: k, a parameter that determines the accuracy of the test
Output: composite if n is composite, otherwise probably prime
write n − 1 as (2^s) ·d with d odd by factoring powers of 2 from n − 1
WitnessLoop: repeat k times:
   pick a random integer a in the range [2, n − 2]
   x ← a^d mod n
   if x = 1 or x = n − 1 then do next WitnessLoop
   repeat s − 1 times:
      x ← x^2 mod n
      if x = 1 then return composite
      if x = n − 1 then do next WitnessLoop
   return composite
return probably prime

PS: Si è un test sulla primalità, in quanto stabilisce che vi è una buona probabilità che quel numero sia primo, ma non dà la certezza al 100%, e quindi tutto il mondo informatico si basa su congetture e statistiche... xD
PPS: copia/incollando non ha preso le potenze come "a^d", ergo mi ha scritto "ad" ecc ecc, mea culpa D:

Ultima modifica di mikeb90 : 12-12-2013 alle 15:14.
mikeb90 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2013, 15:57   #4
bancodeipugni
Senior Member
 
L'Avatar di bancodeipugni
 
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3984
ah ecco

x= a^d mod n

x = x^2 mod n

x sarebbe da mettere globale per lasciare withnessloop come procedura, altrimenti è da passare x e da ritornare

resta comunque il mistero di chi sia s
bancodeipugni è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2013, 11:11   #5
onbi
Member
 
Iscritto dal: Mar 2004
Messaggi: 137
http://it.wikipedia.org/wiki/Test_di_Miller-Rabin
onbi è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Oppo Find X10, X10 Pro Max e X10 E: conf...
Dal microscopio all'IA: in cervello di i...
Cyberpunk 2077 arriverà su Battle...
Altro che divieto: interi pallet di GeFo...
QNAPTS-h966TX, il NAS per chi fa editing...
Il trucco semplicissimo per installare W...
Apple rinvia due novità di iOS 27...
Una memoria ferroelettrica raggiunge 10 ...
Honor Magic 9, Pro Max e Super Edition: ...
24 offerte Amazon da non perdere, dalla ...
Apple starebbe progettando i propri cont...
Niente borsa per OpenAI prima del 2027: ...
Meta potrebbe aver mostrato in anticipo ...
Bicicletta elettrica L26 a 474,05€: e-bi...
NVIDIA RTX PRO 5500 Blackwell: 84 GB di ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v