C'est officiel et indéniable : la doc d'emberjs est la meilleure doc qui soit, tous domaines confondus
Le soucis c'est que je me retrouve avec des choses comme ça,
ghci>primefactors 10
[5]
ghci>divisorsOf 10
[1,2,5,10]
ghci>primesin [2..10]
[5,7]
Il ne s'arrêtera pas tant que le premier élément sera inférieur à la racine du dernier. C'est un des soucis qui vient du fait de poser cet algorithme de manière récursive je pense.
Je l'avais fait de cette manière en Ruby et ça m'avait pris que quelques heures aussi mais là je refais en Haskell et cette approche avec un langage fonctionnel n'est limite pas fonctionelle Enfin c'est surtout la paresse d'Haskell qui pose soucis dans ce cas là.
D'ailleurs j'ai du mal comprendre, j'avais aussi lu qu'on pouvait majorer l'ensemble des facteurs premiers d'un entier par sa racine carrée mais quand je décompose 10 en facteurs premiers j'ai 5 et 2. Pourtant 2 < sqrt(10) < 5. J'ai mal compris? Ca fait longtemps que j'ai pas fait d'arithmétique
Non, tu confonds. Si tu veux savoir si N est premier, tu peux tester tout les nombres entre 2 et sqrt(N) (arrondi au nombre supérieur). Si il y a un facteur dans cette borne là, N n'est pas premier.
Sinon, il y a aussi le fait qu'un nombre composé est le produit de deux nombres premiers, comme 10 qui est le produit de 2 * 5, ou 9 qui est 3 * 3, etc.
"Je l'avais fait de cette manière en Ruby et ça m'avait pris que quelques heures"
Tu parles du crible ou du projet euler 3 ?
Parce que même en bruteforce le problème 3 prends que quelques centièmes de seconde.
Si il est mal fait, ça prends facilement quelques heures de plus...
Quelques centièmes de secondes c'est complétement impossible, on parle pas du même problème 3 je crois
Okay Knakis ça aide à affiner une approche par bruteforce mais ça ne fonctionne pas pour le crible d'erathostène.
Pour utiliser l'algorithme je dois obligatoirement avoir un sous-ensemble de l'ensemble des entiers naturels en valeur initiale, donc. Comme [2..x] par exemple, si j'ai des coupures dans ma liste initiale l'algorithme échoue. Du coup je pars avec [2..x] pourr trouve
owned by tab
pour trouver la liste des premiers entre 2 et x, sauf qu'il suffit que sqrt(x) > 2 et je n'aurais pas 2 dans ma liste alors qu'il est premier.
Ce qui me laisse penser qu'on ne peut pas implémenter le crible de manière récursive ou du moins pas aussi simplement que ça. Je pourrais partir de la fin mais le problème serait le même
Avec l'affinement par la racine le bruteforce doit être faisable sans trop de problèmes.
"Avec l'affinement par la racine le bruteforce doit être faisable sans trop de problèmes. "
Ah oui, c'est ce dont je parlais.
http://pastebin.com/Y9R950GU
C'est pas du bruteforce débile, mais la manière de tester les nombres premiers reste du bruteforce.
Ouais en effet c'est plus instant que je croyais avec l'affinement
Mais je pense pas que ce soit possible un tel bruteforce avec Haskell à cause de sa paresse, mais je vais tenter. Mon objectif n'est pas de le faire en bruteforce toutefois
Slut.
Excuser moi de vous deranger, j'ai telecharger le cd1 de Debian aveg Kde, et ca m'a mis en lancant l'installation graphique qu'il ne pouvait pas lire les fichiers, puis j'ai eu des lignes de commandes.
La ça marche avec l'inztallation normale, sachant que je n'ai pas internet, je continue d'après vous?
J'aurai bien KDE en l'installant sans reseau vu que j'ai pris le cd1 amd64 KDE?
Merci!
@Caletlog https://www.jeuxvideo.com/forums/1-38-7665853-2083-0-1-0-0.htm#message_7818618
« Même si je suis conscient des points qui peuvent pousser à délaisser Github, est-ce que ça en vaut vraiment le coup ? J'ai pas l'impression que Github soit une si grande menace que ça pour ses utilisateurs, et vu les services qu'il propose gratuitement, ça reste extrêmement 'rentable'.
Pourquoi tu tentes à tout prix de t'en débarrasser ? »
Je suis dépendant à un service propriétaire et centralisé. L'histoire montre que ce type de service est dangereux et à éviter. J'ai beau faire relativement confiance à GitHub, je ne veux pas avoir une quelconque dépendance avec ce service.
J'ai pas l'intention de m'en débarrasser, je veux juste avoir un équivalent sur lequel j'ai le contrôle (typiquement un GitLab chez-moi, mais ça ne répond pas à tous mes problèmes), et me servir de GitHub uniquement comme mirroir.
---
Concernant ton projet et les questions légales, ça serait intéressant d'en faire un topic sur le CDSW, je pense pas être à côté de la plaque mais c'est toujours bon d'avoir plusieurs avis.
« Pour l'histoire de responsabilité en cas d'accès au serveur (en supposant que rien ne me dédouane dans les CGU) : si je suis sur un mutualisé, la faute incombe à l'hébergeur dans une certaine mesure, non ? Même question pour un VPS. »
Faut voir les conditions d'utilisations de ton hébergeur, ainsi que ton contrat. À tous les coups il y a une clause pour préciser qu'ils n'offrent aucune garantie quant à une faille causée par **ton** utilisation de leur service. À ce moment là, si tu te fais piquer un accès FTP ou SSH, c'est toi le seul responsable. Idem si ton application présente une quelconque faille qui permette d'obtenir un accès au système de fichiers. Pour le (rare) cas où la faille provient de l'hébergeur, faut voir le contrat.
Par exemple chez OVH pour un mutualisé :
« OVH ne pourra être tenu responsable envers le Client de l'introduction d'un virus informatique sur le Service du Client. »
« OVH ne saurait être tenu responsable d’une défaillance ayant pour origine une mauvaise utilisation du Service par le Client. »
Et pour les dédiés, le client est clairement défini comme total responsable du serveur.
Bref, mets des CGU qui te déchargent de toute responsabilité, les utilisateurs ne les liront pas dans tous les cas.
Mais bon, même si tu t'es couvert avec les CGU, à partir du moment où les données sont un minimum sensibles t'as intérêt à chiffrer au possible (et mieux, à laisser les gens installer l'application chez-eux). En ce moment le chiffrement c'est à la mode en plus, c'est un très bon argument marketing (même si on sait très bien qu'un simple JS compromis suffit à faire tomber cette pseudo-sécurité). Faut quand même savoir que les mémos peuvent contenir des données nominatives très privées, et ça en ferait une mine d'or pour faire du chantage si ton service venait à être très populaire.
---
« C'est officiel et indéniable : la doc d'emberjs est la meilleure doc qui soit, tous domaines confondus »
Bof, y'a aussi les man pages BSD.
Et la doc de PHP aussi, surtout avec les exemples soumis par la communauté, j'ai jamais vu ça ailleurs et pourtant c'est tellement pratique.
@Google_Bot https://www.jeuxvideo.com/forums/1-38-7665853-2083-0-1-0-0.htm#message_7818626
Lien du thème CSS GitHub pour GitWeb ?
Le bruteforce est la seule manière d'être sûr d'avoir un nombre premier. Les autres tests sont plus rapides mais donnent parfois des faux-positifs.
Caletlog :> En 2001, date de sortie de l'exercice, ça devait prendre «un peu» plus de temps j'crois.
Knakis > mais on serait pas passé de plusieurs heures à 0.08 secondes, quand même, si ?
Je sais pas, je l'avais fait en mode idiot, sans toutes les propriétés mathématiques pour réduire le temps que ça prends.
Faudrait que quelqu'un avec une épave tente de le faire, pour voir.
Toutes les propriétés mathématiques, c'est qu'une majoration hein
Bon sinon ça m'énerve ça fonctionne pas, ça fonctionne pour de petits nombre mais là il me renvoie que le plus grand diviseur premier est 137
Sinon c'est quoi votre record à Projet Euler ? Je suis dans la trentaine en Ruby
Je vois pas pourquoi ça fonctionne pas pour des nombres trop grands
isPrime :: (Integral a) => a -> Bool
isPrime 0 = error "0 not allowed"
isPrime x
| length [ n | n<-[2..max],x `mod` n == 0] == 0 = True
| otherwise = False
where max = truncate $ sqrt $ fromIntegral x
48 en Ruby pour moi.
Mais faut dire que le n°48 est franchement très simple, il aurait plus sa place dans les 20 premiers.
Ouais après j'ai des périodes, des fois je me fous une semaine dessus et j'en résouds 15 puis j'en fais plus pendant 4 mois
Mais là les faire en Haskell c'est un challenge intéressant, les faire en Ruby a très peu d'intérêt pour moi. Même si je les réussis j'en pas bien fier
suis*
Oui, en Haskell c'est très intéressant à faire.
Et puis y'a des cas où le Haskell permet vraiment de résoudre ça en une ligne, genre quand ça touche aux triangles ou aux triplets X ou Y.
Après je les fais souvent d'abord en Ruby pour penser uniquement à l'algo et pas la syntaxe, pour les refaire ensuite en C++. Généralement c'est la même chose, de toute façon. Les structures sont juste 'dépliées'.
" Ouais après j'ai des périodes, des fois je me fous une semaine dessus et j'en résouds 15 puis j'en fais plus pendant 4 mois"
Pareil. Parfois je bloque sur un problème pendant 3 semaines avant d'abandonner, et là 3 mois plus tard, illumination soudaine et on se demande comment on a pas pu voir ça
Et à côté je suis incapable de résoudre le problème 8 étonnement, ça fait un trou dans ma liste