Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

12 commentaire(s) de Pole4 sur des sources sur tout CodeS-SourceS

Le : 13/03/2007 22:13:57
Source : ENTIER 256 BITS ET +
Si tu penses à RSA pour le cryptage, tu vas être déçu de la lenteur de l'application (à cause du modulo principalement mais aussi de la multiplication)...
On peut grandement accélérer la recherche du chiffre du quotient en faisant une division qui donne une approximation qu'on doit corriger maximum 2 fois (par chiffre).


Le : 11/11/2006 08:45:20
Source : ASCII ART FRACTALE
A 4 ça déborde de l'écran,alors à 20!
Même sur un fichier,10 devrait suffire.
Pole.


Le : 17/10/2006 17:02:58
Source : NOMBRES PREMIERS - ERATOSTHENE QUASI ILLIMITÉ
Oui mais ce code renvoit TOUT les nb premiers <n. Pas si n est premier.
On peut facilement trouver un nombre premier de 1000 chiffres, mais on est loin de savoir combien il y a de nb premiers jusqu'à 10^1000(record : 4*10^22) et encore plus de les connaître tous (record : 10^16).


Le : 15/10/2006 21:04:59
Source : NOMBRES PREMIERS - ERATOSTHENE QUASI ILLIMITÉ
phi(n) renvoie le nombre de nombre inférieur à n premier avec n.
Un nombre est premier avec un autre si leur PGCD est 1.
pi(n) renvoie bien le nb de nb premier inférieur à n.


Le : 29/06/2006 12:55:15
Source : RECHERCHE DE NOMBRES PREMIERS PAR LE CRIBLE D'ERATOSTHENE
En réponse à un message plus haut, oui on peut l'optimiser.

En mémoire, en ne stockant qu'un nombre sur 2, les nombres impairs (ne pas oublier 2).
En temps, il faut remplacer :
-les pow(2,x%8) par 1<<(x&7)
-les x/8 par x>>3
-à part pour 2, on peut utiliser une incrément de j qui est 2*i
-on peut commencer pour j à i*i
-plus compliqué qu'au dessus, prendre une variable qui contient j/8, et une autre j%8, et à chaque fois, ajouter i%8, sur la variable de j%8 et si c'est >8, enlever 8 à cette variable et incrémenter l'autre (valable pour la version qui utilise les nb pairs et impairs, à modifier pour l'autre).
Avec ça, on peut aller beaucoup plus loin que 100000. (le record est 10^16)

Autre optimisation algorithmique : utiliser le crible d'Atkin.

Pole.


Le : 27/06/2006 14:46:06
Source : RECHERCHE DE NOMBRES PREMIERS PAR LE CRIBLE D'ERATOSTHENE
Utilise le crible d'Erathostène.
On part d'une liste
2 3 4 5 6 7 8 9 10
On prend le premier nombre : 2->1 er nombre premier
On l'enlève.
On enlève tous ses multiples.
3 5 7 9

On prend le premier nombre : 3-2ème nombre premier
On l'enlève.
On enlève tous ses multiples.
5 7
5 est plus grand que la racine carré de 10, on stoppe.

Normalement pour l'implémentation, on prend une liste qu'on a mis à 0, et à chaque fois qu'on effectue l'opération on enlève, on met la case correspondante à 1. Pour prendre le premier nombre, on recherche le premier nombre != 0.

Pole.




Le : 08/02/2006 13:00:54
Source : FRACTALES DE LYAPUNOV
Il faut attendre assez longtemps pour le calcul. J'ai modifié le code pour qu'il affiche tout les 100 lignes. De cette manière, on peut suivre l'éxécution du programme.


Le : 02/11/2005 14:05:59
Source : FACTORISATION DES ENTIERS DE CODAGE RSA
Il manque la classe Utilitaire. Est-ce mon java 1.2.2 qui n'a pas cette classe?


Le : 24/10/2005 11:39:16
Source : FONCTION INVERSE SINUS (ARCSIN) ET INVERSE COSINUS (ARCCOS) POUR J2ME
J'ai oublié pour la fonction de pochhammer :
on peut aussi s'en passer
une variable mis à 0.5 et à chaque boucle on multiplie par 0.5+k

Je verrais bien le début comme ça :
private double arcsin(double z) {
         int k,i;
         int N = 30; // This number determines the precision, higher it is, higher the precision is.
         double res,tmp1,tmp2,tmp3,facto;
        
         res = 0;
         if (Math.abs(z)<=0.5) {
// = sum(k=0 a n) de (produit de j=0 a k-1 de (0.5+j))*z exp 2k+1) div (k! * k+1)
          tmp2=z;tmp3=1;facto=1;
             for (k=0;k<N;k++) {
                 tmp3 *= 0.5+k;  // tmp3=prod(0.5,k)
                 tmp1 =tmp3*tmp2;
                 tmp1 /= (2*k+1);
                 tmp1 /= facto;
                 tmp2 *= z*z; // c'est le 2*k+1 de la boucle
                 if (k!=0) facto *=k;    // facto=fact(k)            
                 res += tmp1;
             }
         } else if (z>0.5) {

Voilà. Pour la suite change le "tmp2 *= z*z;" en "tmp2 *= z;".
(Je n'ai pas compilé le code, donc il peut y avoir des erreurs)


Le : 24/10/2005 11:19:22
Source : FONCTION INVERSE SINUS (ARCSIN) ET INVERSE COSINUS (ARCCOS) POUR J2ME
Juste pour l'optimisation (si tu veux avoir quelques milliers de décimales) :
tmp1 /= fact(k);
tu peux mettre une variable que tu multiplie à chaque fois dans la boucle.
for (i=0;i<k;i++)
     tmp2 *= ((z+1)/2);
même chose

Mais ces améliorations ne servent à rien si tu te sers que de 7 où 16 décimales.
Par contre, pour les BigDecimal, ça peut servir. (Il y a peut être une fonction arcsin dans la bibliothèque de BigDecimal, mais bon)



1


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.