Le Sun, 03 Jul 2011 01:55:29 +0200,
"Pascal J. Bourguignon" a écrit :
> > voici le lien du source : http://codepad.org/5CXy0oLS
> Le principal problème dans ton code, c'est la ligne 43, qui
> incrémente j seulement de 1. Donc, après 3, tu vas chercher Ã
> éliminer les multiples de 4, or ils ont déjà étà © éliminés en tant
> que multiples de 2, etc.
>
> Similairement, ligne 30, il n'y a aucune raison de cribler tous les
> entiers, puisque seuls les nombres supérieurs à j peuvent à ªtre un
> multiple de j.
> En fin de compte tu n'as pas implémenté le crible d'Ãrat osthène,
> puisque ton algorithme consiste à diviser systématiquement to us les
> entiers par tous les entiers.
je pensais l'avoir effectué, je vais le recompiler en mettant un
compteur de boucle et afficher celles-ci.
Le Sun, 03 Jul 2011 01:55:29 +0200,
"Pascal J. Bourguignon" <pjb@informatimago.com> a écrit :
> > voici le lien du source : http://codepad.org/5CXy0oLS
> Le principal problème dans ton code, c'est la ligne 43, qui
> incrémente j seulement de 1. Donc, après 3, tu vas chercher Ã
> éliminer les multiples de 4, or ils ont déjà étà © éliminés en tant
> que multiples de 2, etc.
>
> Similairement, ligne 30, il n'y a aucune raison de cribler tous les
> entiers, puisque seuls les nombres supérieurs à j peuvent à ªtre un
> multiple de j.
> En fin de compte tu n'as pas implémenté le crible d'Ãrat osthène,
> puisque ton algorithme consiste à diviser systématiquement to us les
> entiers par tous les entiers.
je pensais l'avoir effectué, je vais le recompiler en mettant un
compteur de boucle et afficher celles-ci.
Le Sun, 03 Jul 2011 01:55:29 +0200,
"Pascal J. Bourguignon" a écrit :
> > voici le lien du source : http://codepad.org/5CXy0oLS
> Le principal problème dans ton code, c'est la ligne 43, qui
> incrémente j seulement de 1. Donc, après 3, tu vas chercher Ã
> éliminer les multiples de 4, or ils ont déjà étà © éliminés en tant
> que multiples de 2, etc.
>
> Similairement, ligne 30, il n'y a aucune raison de cribler tous les
> entiers, puisque seuls les nombres supérieurs à j peuvent à ªtre un
> multiple de j.
> En fin de compte tu n'as pas implémenté le crible d'Ãrat osthène,
> puisque ton algorithme consiste à diviser systématiquement to us les
> entiers par tous les entiers.
je pensais l'avoir effectué, je vais le recompiler en mettant un
compteur de boucle et afficher celles-ci.
Olivier BURELLI writes:[du C++ un peu buggue]
[du Lisp]
Olivier BURELLI <olivier@burelli.fr> writes:
[du C++ un peu buggue]
[du Lisp]
Olivier BURELLI writes:[du C++ un peu buggue]
[du Lisp]
des additions... il n'y a meme pas de multiplication dans le crible
d'erathosthene implemente correctement
des additions... il n'y a meme pas de multiplication dans le crible
d'erathosthene implemente correctement
des additions... il n'y a meme pas de multiplication dans le crible
d'erathosthene implemente correctement
On Sun, 3 Jul 2011 00:31:59 +0000, Olivier BURELLI
:Mon code met 9 minute pour fournir la liste des nombres premier sur l'intervalle [2, 10 000 000]
Pour référence :
Je viens d'implémenter un crible en quelques lignes.
Sur un Core2 Duo 1,8 GHz, il met un peu moins d'une seconde pour
calculer les nombres premiers jusqu'à dix millions, et onze secondes
pour calculer les nombres premiers jsuqu'à cent millions.
On Sun, 3 Jul 2011 00:31:59 +0000, Olivier BURELLI
<olivier@burelli.fr>:
Mon code met 9 minute pour fournir la liste des nombres premier sur l'intervalle [2, 10 000 000]
Pour référence :
Je viens d'implémenter un crible en quelques lignes.
Sur un Core2 Duo 1,8 GHz, il met un peu moins d'une seconde pour
calculer les nombres premiers jusqu'à dix millions, et onze secondes
pour calculer les nombres premiers jsuqu'à cent millions.
On Sun, 3 Jul 2011 00:31:59 +0000, Olivier BURELLI
:Mon code met 9 minute pour fournir la liste des nombres premier sur l'intervalle [2, 10 000 000]
Pour référence :
Je viens d'implémenter un crible en quelques lignes.
Sur un Core2 Duo 1,8 GHz, il met un peu moins d'une seconde pour
calculer les nombres premiers jusqu'à dix millions, et onze secondes
pour calculer les nombres premiers jsuqu'à cent millions.
In article ,
Pascal J. Bourguignon wrote:Olivier BURELLI writes:[du C++ un peu buggue]
[du Lisp]
Okay, la, je craque. Pascal, tu as un debutant qui a deja du mal avec
ce qu'il est en train de faire. Tu crois que ca sert vraiment a quelque
chose de lui montrer du code lisp ? c'est pas reellement le bon moment pour
le convaincre, et c'est totalement hors sujet pour le newsgroup.
Je peux aussi ressortir l'implementation du crible pour le jeu de la vie,
c'est vachement joli, ca marche super bien, ... et ca ne va pas non plus
faire avancer le sujet.
In article <87ei27prg4.fsf@kuiper.lan.informatimago.com>,
Pascal J. Bourguignon <pjb@informatimago.com> wrote:
Olivier BURELLI <olivier@burelli.fr> writes:
[du C++ un peu buggue]
[du Lisp]
Okay, la, je craque. Pascal, tu as un debutant qui a deja du mal avec
ce qu'il est en train de faire. Tu crois que ca sert vraiment a quelque
chose de lui montrer du code lisp ? c'est pas reellement le bon moment pour
le convaincre, et c'est totalement hors sujet pour le newsgroup.
Je peux aussi ressortir l'implementation du crible pour le jeu de la vie,
c'est vachement joli, ca marche super bien, ... et ca ne va pas non plus
faire avancer le sujet.
In article ,
Pascal J. Bourguignon wrote:Olivier BURELLI writes:[du C++ un peu buggue]
[du Lisp]
Okay, la, je craque. Pascal, tu as un debutant qui a deja du mal avec
ce qu'il est en train de faire. Tu crois que ca sert vraiment a quelque
chose de lui montrer du code lisp ? c'est pas reellement le bon moment pour
le convaincre, et c'est totalement hors sujet pour le newsgroup.
Je peux aussi ressortir l'implementation du crible pour le jeu de la vie,
c'est vachement joli, ca marche super bien, ... et ca ne va pas non plus
faire avancer le sujet.
Ben non, toujours pas. Il n'y a pas de division dans un vrai crible
d'erathosthene. Regarde ta boucle interieure, c'est du grand
n'importe quoi. C'est pourtant pas dur d'ecrire quelque chose genre:
for(unsigned int i = 2 * j; i < entier.size(); i += j)
entiers[i] = 0;
Accessoirement, tu n'as aucune garantie que ton compilo va determiner
que sqrt(m) est une constante et l'optimiser. Il vaut mieux garder au
chaud la partie entiere de sa valeur pour eviter tout souci, e.g.,
const unsigned int bound = sqrt(m)
Ben non, toujours pas. Il n'y a pas de division dans un vrai crible
d'erathosthene. Regarde ta boucle interieure, c'est du grand
n'importe quoi. C'est pourtant pas dur d'ecrire quelque chose genre:
for(unsigned int i = 2 * j; i < entier.size(); i += j)
entiers[i] = 0;
Accessoirement, tu n'as aucune garantie que ton compilo va determiner
que sqrt(m) est une constante et l'optimiser. Il vaut mieux garder au
chaud la partie entiere de sa valeur pour eviter tout souci, e.g.,
const unsigned int bound = sqrt(m)
Ben non, toujours pas. Il n'y a pas de division dans un vrai crible
d'erathosthene. Regarde ta boucle interieure, c'est du grand
n'importe quoi. C'est pourtant pas dur d'ecrire quelque chose genre:
for(unsigned int i = 2 * j; i < entier.size(); i += j)
entiers[i] = 0;
Accessoirement, tu n'as aucune garantie que ton compilo va determiner
que sqrt(m) est une constante et l'optimiser. Il vaut mieux garder au
chaud la partie entiere de sa valeur pour eviter tout souci, e.g.,
const unsigned int bound = sqrt(m)
C'est une question d'algorithme, est lisp est un langage
algorithmique, aussi bon qu'un autre pour décrire un algorithme.
(Meilleur en fait, pour la raison que j'ai indiquée).
Knuth décrit ses algorithmes en assembleur, tu aurais peut être
préféré que je fasse de même?
C'est une question d'algorithme, est lisp est un langage
algorithmique, aussi bon qu'un autre pour décrire un algorithme.
(Meilleur en fait, pour la raison que j'ai indiquée).
Knuth décrit ses algorithmes en assembleur, tu aurais peut être
préféré que je fasse de même?
C'est une question d'algorithme, est lisp est un langage
algorithmique, aussi bon qu'un autre pour décrire un algorithme.
(Meilleur en fait, pour la raison que j'ai indiquée).
Knuth décrit ses algorithmes en assembleur, tu aurais peut être
préféré que je fasse de même?
Le Sun, 03 Jul 2011 13:27:10 +0200,
"Pascal J. Bourguignon" a écrit :C'est une question d'algorithme, est lisp est un langage
algorithmique, aussi bon qu'un autre pour décrire un algorithme.
(Meilleur en fait, pour la raison que j'ai indiquée).
Knuth décrit ses algorithmes en assembleur, tu aurais peut être
préféré que je fasse de même?
Oui Stop plizz, sinon je vais sortir ma becane et faire un tour... :p
Je ne fais effectivement qu'un exercice demande par mon livre
d'apprentissage du C++.
Pas du LISP, au pire, je vais chercher un PB 15(automate), ou je cable
du pneumatique...
Néanmoins pascal tes conseils m'ont éclairé.
L'auteur demandait de trouver l'algo sur le net...
je n'ai trouvé que le principe, essayé de l'implémenter, n'y suis
pas arrivé...
Au final, marc a fourni un algo juste, simple et efficace, je le
réetudierai à tête reposée. Ainsi, dans l'avenir j'utiliserai une
boucle correctement.
Une chose est sure, je vais en parallèle ouvrir mon bouquin d'algo... :p
Le Sun, 03 Jul 2011 13:27:10 +0200,
"Pascal J. Bourguignon" <pjb@informatimago.com> a écrit :
C'est une question d'algorithme, est lisp est un langage
algorithmique, aussi bon qu'un autre pour décrire un algorithme.
(Meilleur en fait, pour la raison que j'ai indiquée).
Knuth décrit ses algorithmes en assembleur, tu aurais peut être
préféré que je fasse de même?
Oui Stop plizz, sinon je vais sortir ma becane et faire un tour... :p
Je ne fais effectivement qu'un exercice demande par mon livre
d'apprentissage du C++.
Pas du LISP, au pire, je vais chercher un PB 15(automate), ou je cable
du pneumatique...
Néanmoins pascal tes conseils m'ont éclairé.
L'auteur demandait de trouver l'algo sur le net...
je n'ai trouvé que le principe, essayé de l'implémenter, n'y suis
pas arrivé...
Au final, marc a fourni un algo juste, simple et efficace, je le
réetudierai à tête reposée. Ainsi, dans l'avenir j'utiliserai une
boucle correctement.
Une chose est sure, je vais en parallèle ouvrir mon bouquin d'algo... :p
Le Sun, 03 Jul 2011 13:27:10 +0200,
"Pascal J. Bourguignon" a écrit :C'est une question d'algorithme, est lisp est un langage
algorithmique, aussi bon qu'un autre pour décrire un algorithme.
(Meilleur en fait, pour la raison que j'ai indiquée).
Knuth décrit ses algorithmes en assembleur, tu aurais peut être
préféré que je fasse de même?
Oui Stop plizz, sinon je vais sortir ma becane et faire un tour... :p
Je ne fais effectivement qu'un exercice demande par mon livre
d'apprentissage du C++.
Pas du LISP, au pire, je vais chercher un PB 15(automate), ou je cable
du pneumatique...
Néanmoins pascal tes conseils m'ont éclairé.
L'auteur demandait de trouver l'algo sur le net...
je n'ai trouvé que le principe, essayé de l'implémenter, n'y suis
pas arrivé...
Au final, marc a fourni un algo juste, simple et efficace, je le
réetudierai à tête reposée. Ainsi, dans l'avenir j'utiliserai une
boucle correctement.
Une chose est sure, je vais en parallèle ouvrir mon bouquin d'algo... :p
D'un autre côté, il est aussi important que l'algorithme ne soit pas
écrit dans un langage de trop bas niveau, car alors il incorpore des
détails qui ne sont pas pertinents (par exemple, gestion de la mémoire,
taille des entiers, etc).
D'un autre côté, il est aussi important que l'algorithme ne soit pas
écrit dans un langage de trop bas niveau, car alors il incorpore des
détails qui ne sont pas pertinents (par exemple, gestion de la mémoire,
taille des entiers, etc).
D'un autre côté, il est aussi important que l'algorithme ne soit pas
écrit dans un langage de trop bas niveau, car alors il incorpore des
détails qui ne sont pas pertinents (par exemple, gestion de la mémoire,
taille des entiers, etc).
In article ,
Pascal J. Bourguignon wrote:D'un autre côté, il est aussi important que l'algorithme ne soit pas
écrit dans un langage de trop bas niveau, car alors il incorpore des
détails qui ne sont pas pertinents (par exemple, gestion de la mémoire,
taille des entiers, etc).
PARDON ? Pas pertinent ?
Si tu veux analyser le crible d'erathosthene, il faut ABSOLUMENT voir quelle
place il prend, et quelle taille font les entiers. Je dirais meme plus: le
crible est un exemple de choix pour illustrer les compromis temps/place prise
que tu peux utiliser sur un algo.
Un petit saut sur wikipedia confirme, O(n) place et O(n(log n)(log log n))
temps.
http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Tiens, d'ailleurs, j'y remarque qu'on peut commencer a j * j, puisque de
facon evidente tout ce qui est avant a disparu.
Il y a aussi un lien vers un article qui decrit une version fortement
plus efficace...
In article <87liwfo3ae.fsf@kuiper.lan.informatimago.com>,
Pascal J. Bourguignon <pjb@informatimago.com> wrote:
D'un autre côté, il est aussi important que l'algorithme ne soit pas
écrit dans un langage de trop bas niveau, car alors il incorpore des
détails qui ne sont pas pertinents (par exemple, gestion de la mémoire,
taille des entiers, etc).
PARDON ? Pas pertinent ?
Si tu veux analyser le crible d'erathosthene, il faut ABSOLUMENT voir quelle
place il prend, et quelle taille font les entiers. Je dirais meme plus: le
crible est un exemple de choix pour illustrer les compromis temps/place prise
que tu peux utiliser sur un algo.
Un petit saut sur wikipedia confirme, O(n) place et O(n(log n)(log log n))
temps.
http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Tiens, d'ailleurs, j'y remarque qu'on peut commencer a j * j, puisque de
facon evidente tout ce qui est avant a disparu.
Il y a aussi un lien vers un article qui decrit une version fortement
plus efficace...
In article ,
Pascal J. Bourguignon wrote:D'un autre côté, il est aussi important que l'algorithme ne soit pas
écrit dans un langage de trop bas niveau, car alors il incorpore des
détails qui ne sont pas pertinents (par exemple, gestion de la mémoire,
taille des entiers, etc).
PARDON ? Pas pertinent ?
Si tu veux analyser le crible d'erathosthene, il faut ABSOLUMENT voir quelle
place il prend, et quelle taille font les entiers. Je dirais meme plus: le
crible est un exemple de choix pour illustrer les compromis temps/place prise
que tu peux utiliser sur un algo.
Un petit saut sur wikipedia confirme, O(n) place et O(n(log n)(log log n))
temps.
http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Tiens, d'ailleurs, j'y remarque qu'on peut commencer a j * j, puisque de
facon evidente tout ce qui est avant a disparu.
Il y a aussi un lien vers un article qui decrit une version fortement
plus efficace...