Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-12-2013, 13: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, 15:59   #2
bancodeipugni
Senior Member
 
L'Avatar di bancodeipugni
 
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3972
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, 16: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 16:14.
mikeb90 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2013, 16:57   #4
bancodeipugni
Senior Member
 
L'Avatar di bancodeipugni
 
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3972
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, 12: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


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Oracle NetSuite si potenzia con nuove fu...
Musica generata con l'IA: Sony lavora a ...
Cyberpunk 2077 in versione PC su smartph...
BYD si gioca un grosso jolly: pronta Rac...
Samsung annuncia l'arrivo in Italia dei ...
Offerta lancio Pixel 10a: come ottenere ...
Google presenta Pixel 10a: poche le novi...
Caos F1 2026: 14 monoposto senza omologa...
Tesla festeggia il primo Cybercab prodot...
Desktop piccolo e potente? NZXT H2 Flow ...
Polestar spinge sull'acceleratore: arriv...
Nuovo record mondiale nel fotovoltaico: ...
L'ultimo baluardo cade: fine supporto pe...
'Il mondo non ha mai visto nulla di simi...
La Commissione europea mette sotto indag...
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: 20:31.


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