AFmika
Messages postés25Date d'inscriptionmardi 14 juillet 2015StatutMembreDernière intervention24 juin 2016 3 janv. 2016 à 16:50
Le principe de cet algorithme n'a pas vraiment rien a voir avec la decomposition d'un nombre en produit de plusieurs facteurs premiers car ici on veut chercher un ou des couples de deux UNIQUES nombres premiers formant ce nombre (dans le cas de la recherche cles RSA) . Le principal atout de cette simulation de l'algorithme de Shor est de factoriser un nombre le plus rapidement possible (en temps convenable) mais pour que cela marche il faudrait un ordinateur quantique : il existe la bibliotheque javascript Jsqubit qui simule un ordinateur quantique plus ou moins efficacement.
Mon algorithme fait un peu pres la meme chose sauf qu'ici il n'y a pas de lieu de calcul quantique.
Pas mathematique dites vous? ce n'est pas du random pur comme vous le pretendez mais du random purement probabiliste d'ailleur la frequence de generation des bons nombres est le principal atout de l'algorithme de Shor ce qui le rend 'magique' entre autre car les nombres sont souvent adequats et repondent aux nombres attendus .
pgl10
Messages postés380Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention29 octobre 202311 11 oct. 2015 à 17:01
Bonjour,
Le programme factor1.exe de Thomas R. Nicely met 6 milisecondes pour factoriser
2^150 + 1 = 1427247692705959881058285969449495136382746625 en :
5*5*5*13*41*61*101*1201*1321*8101*63901*268501*13334701*1182468601
et il permet d'aller bien plus loin. C'est pour cela qu'il est intéressant de le signaler.
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024656 11 oct. 2015 à 14:54
Bonjour KX, au vu de ce que je lis, cette source est hors charte et donc mérite la suppression (ce qui sera fait juste après l'appui du Valider...), mais je laisserai les commentaires pour l'instant.
Cependant, il me semble plus judicieux que tu postes un snippet avec ton code
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 11 oct. 2015 à 11:24
Outre le fait que tu ais volontairement masqué le code source sur un site communautaire de partage de code, que tu imposes une licence "Toutes copies ou modification sans autorisation sont interdites" qui n'a aucune valeur sur ce site (en Creative commons V3.0) et que tu fasses la pub pour ta page facebook, ton code est en plus très mauvais.
Tu fais une recherche mathématique que tu dis être "polynomiale" alors que ton algorithme se base sur un random, c'est absurde ! Quand je reprends ton exemple 6 = 2*3 et que cela me renvoie une erreur, je ne peux pas te donner plus que 1/5 à l'évaluation du code...
Un petit conseil pour améliorer ta manière de programmer : ne mélange pas calcul et présentation, si tu fais un algorithme mathématique le résultat doit être un objet mathématique (dans ton cas, la liste des facteurs premiers), pas une modification de la page, il ne faut pas tout mélanger.
Sinon pour ceux que ça intéresserait, voici un algorithme linéaire pour faire un vrai calcul de décomposition en facteur premiers qui fonctionne dans tous les cas.
<html>
<head>
<script>
function primeFactorization(n) {
if (isNaN(n) || n == 0)
return [];
if (n < 0)
n = -n;
var result = [];
for (i = 2; i <= n;) {
if (n % i == 0) {
result.push(i);
n /= i;
} else {
i++;
}
}
return result;
}
</script>
</head>
<body>
Nombre entier :<br/>
<input type="text" id="n" maxlength="7"
onkeyup="document.getElementById('r').value = primeFactorization(document.getElementById('n').value)"/>
<br/>
Décomposition :<br/>
<input type="text" id="r" disabled/>
</body>
</html>
Attention : pour les très grands nombre premiers, le calcul peut prendre du temps. J'ai donc limité la taille de l'input à 7 caractères, le calcul le plus long sera celui de n=9999991, qui répond en temps correct.
AFmika
Messages postés25Date d'inscriptionmardi 14 juillet 2015StatutMembreDernière intervention24 juin 2016 11 oct. 2015 à 08:58
Non ici il n est pas question de decomposer un nombre mais de trouver pour un entier N>0 : deux diviseurs p et q qui sont premiers.
pgl10
Messages postés380Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention29 octobre 202311 6 oct. 2015 à 19:47
Bonjour à tous,
Je signale : http://www.trnicely.net/ où il y a le fichier factor1.zip qui contient le source en langage C et l'exécutable d'un bon logiciel pour factoriser des entiers avec des performances très correctes.
@karamel
Messages postés1855Date d'inscriptionvendredi 9 mai 2008StatutModérateurDernière intervention18 avril 2024153 6 oct. 2015 à 19:10
surtout q' il existe des désobfusquateur c'est une mesure inutile.
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 6 oct. 2015 à 13:30
3 janv. 2016 à 16:50
Mon algorithme fait un peu pres la meme chose sauf qu'ici il n'y a pas de lieu de calcul quantique.
Pas mathematique dites vous? ce n'est pas du random pur comme vous le pretendez mais du random purement probabiliste d'ailleur la frequence de generation des bons nombres est le principal atout de l'algorithme de Shor ce qui le rend 'magique' entre autre car les nombres sont souvent adequats et repondent aux nombres attendus .
11 oct. 2015 à 17:01
Le programme factor1.exe de Thomas R. Nicely met 6 milisecondes pour factoriser
2^150 + 1 = 1427247692705959881058285969449495136382746625 en :
5*5*5*13*41*61*101*1201*1321*8101*63901*268501*13334701*1182468601
et il permet d'aller bien plus loin. C'est pour cela qu'il est intéressant de le signaler.
11 oct. 2015 à 14:54
Cependant, il me semble plus judicieux que tu postes un snippet avec ton code
11 oct. 2015 à 11:24
Tu fais une recherche mathématique que tu dis être "polynomiale" alors que ton algorithme se base sur un random, c'est absurde ! Quand je reprends ton exemple 6 = 2*3 et que cela me renvoie une erreur, je ne peux pas te donner plus que 1/5 à l'évaluation du code...
Un petit conseil pour améliorer ta manière de programmer : ne mélange pas calcul et présentation, si tu fais un algorithme mathématique le résultat doit être un objet mathématique (dans ton cas, la liste des facteurs premiers), pas une modification de la page, il ne faut pas tout mélanger.
Sinon pour ceux que ça intéresserait, voici un algorithme linéaire pour faire un vrai calcul de décomposition en facteur premiers qui fonctionne dans tous les cas.
Attention : pour les très grands nombre premiers, le calcul peut prendre du temps. J'ai donc limité la taille de l'input à 7 caractères, le calcul le plus long sera celui de n=9999991, qui répond en temps correct.
11 oct. 2015 à 08:58
6 oct. 2015 à 19:47
Je signale : http://www.trnicely.net/ où il y a le fichier factor1.zip qui contient le source en langage C et l'exécutable d'un bon logiciel pour factoriser des entiers avec des performances très correctes.
6 oct. 2015 à 19:10
6 oct. 2015 à 13:30