Cette partie du forum n’est pas compatible avec les bloqueurs publicitaires
Félicitations à vous, de préférer les accès payants plutôt que la gratuité par la publicité, c’est honnorable et cohérent de votre part. Malheureusement, l’accès payant par micropaiement (qui serait d’environ 1 cent pour 20 pages consultées) n’est pour l’instant pas encore mis en place, et l’accès gratuit sans publicité, est réservé aux membres actif(ve)s du forum. En attendant, si vous souhaitez poursuivre votre visite chez nous, vous pouvez ajouter le site à votre liste blanche, ou encore mieux, désactiver le bloqueur partout. Pour ajouter le site à votre liste blanche, pour Firefox (similaire pour les autres navigateurs), rendez‑vous en bas à gauche de la fenêtre de votre navigateur, et cliquez sur le menu comme dans l’exemple de l’image ci‑dessous, puis rechargez la page, en appuyant sur F5.
|
|
Auteur | Message |
---|---|
Administrateur
|
Ça n’a aucune prétention, c’est juste au cas où ça puisse être utile à quelqu’un(e), en lui faisant profiter du temps de calcul effectué et en lui‑en faisant faire l’économie. C’est une liste de nombres premiers, générée par un programme SML, en téléchargement dans une archive (inutile de penser à poster un telle liste dans un message de forum… elle fait 23 MB).
Le court programme SML a été compilé avec MLton, et a tourné pendant un peu plus de 24 heures, sur une machine Intel 32 bits, 2 cœurs à 1.82 GHz (même si le programme n’utilisait qu’un seul processus), sous Ubuntu 12.04. La commande exacte était `(time ./primes) | tee primes.txt` : chaque nombre premier était à la fois écrit sur la console et dans un fichier, le tout passant par une redirection d’entrée‑sortie, et tout ceci a ralentit le calcul dans une mesure que je ne saurais pas évaluer. La liste produite en 24h aurait donc put être plus longue, mais c’est déjà ça… . Pour info, au bout de 24h, la mémoire consommée par le programme, s’élevait à environ 600 MB. Le résultat est les 2 608 299 premiers nombres premiers ( ), s’étalant de 2 à 43 066 921. Archive ZIP standard pour les Windowsien(ne)s et les Unixien(ne)s : primes.zip (6.5 MB) Pour les gens qui ne veulent pas télécharger cette archive pour simplement avoir le texte du programme SML, sans la grosse liste produite, voici le texte du programme en SML : Code :(* -*- coding:utf-8; mode:sml; indent-tabs-mode:nil; c-basic-offset:3; -*- *) Je commenterai ce type de programme, plus tard, dans un autre sujet, sur les idiomes SML pour les structures infinies et les continuations (ou simulation de continuations). |
|
|
Administrateur
|
Hibou a écrit :
Wé, ben bye les pédanteries, ça ne sert à rien de dédoubler un fichier de cette taille, je ne laisse que le ZIP renommée en minuscule. De toute manière le ZIP est dans un standard ISO pour une format de fichier conteneur (j’en reparlerai dans un autre sujet, un jour), et alors les UNIXien(ne)s doivent accepter le format ZIP. |
Modératrice
|
Hibou a écrit : Le résultat est les 2 608 299 premiers nombres premiers ( ), s’étalant de 2 à 43 066 921. Aux dernières nouvelles 2 n'était pas un nombre premier il me semble. |
Administrateur
|
zen a écrit : Aux dernières nouvelles 2 n'était pas un nombre premier il me semble. Si, c’est le premier nombre premier . Un nombre premier est un nombre qui admet exactement (et seulement) deux diviseurs distincts, qui sont 1 et lui‑même. Ce n’est pas 2 qui n’est pas un nombre premier, c’est 1. |
Modératrice
|
Ha oui ! Je ne sais pas pourquoi j'avais remplacé 2 par 1.
|
Administrateur
|
zen a écrit : Ha oui ! Je ne sais pas pourquoi j'avais remplacé 2 par 1. Peut‑être à cause des nombre paires, je sais pas. C’est beaucoup plus rapide à calculer les nombres paires; les nombres premiers, c’est long . Je ferai une version modifiée pour être un peu plus rapide, un jour prochain. En marge, comme tu passais sur ce sujet, je me disais que c’est sûrement assez illisible la notation Hongroise pour les gens qui ne connaissent pas. C’est cette manière d’écrire un nom mot composé en collant tous les mots et en mettant un majuscule pour distinguer le début des mots du mot composé, s’il est composé de plusieurs. Par exemple leChatNoir. Je préfère personnellement le style le_chat_noir, qui me semble plus naturel. Les abréviations aussi, comme écrire hd au lieu de head. Pas mon style habituel, mais c’est tiré d’un cours PDF d’une université Américaine, et ce style que je n’aime pas, est malheureusement le plus académique et le plus courant avec ce langage qu’est SML. |
Administrateur
|
Un point de style. Dans ceci :
Code :datatype 'a seq = Cons of 'a * (unit -> 'a seq) Le type s’appel seq, les fonctions sur ce type utilisent Seq dans leurs noms… Au lieu d’être nommé Cons, le constructeur aurait dut être nommé Seq, ça aurait été plus cohérent. Comme ça : Code :datatype 'a seq = Seq of 'a * (unit -> 'a seq) Dans le premier message, il faut remplacer Cons par Seq, partout. Hibou57 « La perversion de la cité commence par la fraude des mots » [Platon] |
|