Introduction : Calcul de la pensée profonde La solution à la vie de l’univers et de toute chose sur une période de 7,5 millions d’années 42
.
Ecrivez un programme dans n'importe quel langage de programmation dont le 75
calcul prend environ 5 secondes, en commençant par ce que vous voulez, et affichez le nombre 42
.
NB: le nombre 42
doit être calculé d'une manière ou d'une autre (nombres aléatoires, ce que vous préférez), pas simplement codé en dur dans votre script.
Comme suggéré, vous ne pouvez pas utiliser de sleep
fonctions équivalentes. Soyez inventif.
popularity-contest
Fès Vrasta
la source
la source
sleep(75);print("%d\n",41+1);
sleep
réponse disponible, les réponses vont être très dépendantes du matériel, j'imagine ... ce qui prend 75s sur votre machine prendra probablement 750s sur ma machine: PRéponses:
Cela prend environ 75 secondes sur une framboise pi overclockée à 1 GHz
Cela fonctionne parce que:
http://www.mathpages.com/home/kmath255.htm
la source
Python 2.7
Pour répondre à la question, il faut connaître la question - et la question est:
So Deep Thought repose sur l' utilisation pratique de la base 13 :
Nous importons nos constantes:
Nous définissons également nos choses de la terre, étant un sac de tuiles de scrabble , Arthur (un prédictible quoique légèrement étrange, une sorte d'ordinateur), Trillian (notre héroïne rationnelle),
Nous présentons Zaphod - un type aléatoire, qui finit par s'essouffler à l'approche du
endOfTheUniverse
.Et Marvin l'Androïde Android , dont l'attitude positive pourrait empêcher toute fête:
Et nous continuons à exécuter ces 4 personnages à travers le mélange jusqu'à ce qu'ils calculent qu'il :
Le complet
deepthought.py
:Cela devrait finir quelque part autour de la barre des 75 secondes, terminant définitivement par 80 secondes. Parfois plus tôt pour Zaphods Infinite Improbability Drive .
la source
File "main.py", line 13, in zaphod = not(randint(i,(80-(datetime.now() - start).seconds)**3)) NameError: name 'i' is not defined
Lot DOS - la réponse à la vie, à l'univers et à tout
Merci à mynameiscoffey pour sa simplification!
Enregistrer sous
answer.bat
:Puis lancez-le et attendez 75 secondes:
la source
@ ping 127.0.0.1 -n 76 >nul && @ echo %~z0
, en utilisant `&&` au lieu de compter sur une paire de CRLFBash (OS X)
Cela pourrait probablement être porté sur d'autres systèmes sans trop de problèmes. Remplacez-le
say
par ce que vous utilisez comme utilitaire de ligne de commande de synthèse vocale. L'-f
option prend l'entrée d'un fichier nommé.Avec un peu de chance, il pourrait même sortir le bon numéro :-)
Cela prend presque exactement 1 minute 15 secondes pour fonctionner sur mon système (OS X 10.5).
la source
MATLAB
Ceci est une question difficile. Comme nous ne connaissons pas vraiment la question, la seule méthode viable pour obtenir la réponse consiste à utiliser une méthode d'optimisation globale. Dans ce cas, j’ai opté pour la méthode de recuit simulé , car celle-ci m’a déjà apporté de belles réponses à des questions difficiles.
Tout ce code est en train de chercher la valeur optimale d'une fonction dont l'entrée est la vie elle-même. Et la chose étonnante est que cela fonctionne. Alors, est-ce que je viens de valider Deep Thought?
Sortie:
la source
C - 1089 octets
Comprimé:
la source
Rubis
Sortie sur ma machine:
Cela abuse du RNG. ;)
la source
Took 25 seconds; seed was 3771996
sur mon ordinateur portable à performances moyennes. Alors, euh ... j'ai menti. : PC
la source
clock()
dépasser une certaine valeur semble enfreindre lano sleep()
règle, puisqu'il s'agit en fait d'un sommeil intensif en CPUJavaScript - Trouver "la réponse à la vie et à tout" en résolvant une équation
Regardons cette équation:
Il y a beaucoup de solutions, mais si vous voulez
r
être aussi grand que possible etp
,q
etr
d'être Naturals il n'y a que deux solutions:1/3 + 1/7 + 1/42 = 1/2
et1/7 + 1/3 + 1/42 = 1/2
avec
p <= q <= r
, il n'y a qu'une solution etr
toujours égale à42
Quel est le moyen le plus (in) efficace de résoudre une équation?
En essayant toutes les valeurs possibles!
Voici le code:
Combien de temps cela prendra ? Pour être honnête, je ne le sais pas car je n’ai pas été capable de l’exécuter jusqu’à la fin.
Cependant, vous pouvez essayer avec de petites
n
valeurs (il doit être supérieur ou égal à42
) et vous obtiendrez un résultat correct. Pour les petites valeurs telles quen = 2000
, cela prend presque une minute sur mon ordinateur portable. Donc, je suppose qu'avec les grandes valeurs données dans l'exemple, cela prendra des jours, des semaines, voire des années !!!Trouver la solution en environ 75 secondes:
Une des exigences de la question initiale est que l’exécution nécessite environ 75 secondes. Un moyen d'y parvenir consiste à ajuster automatiquement la complexité de l'algorithme au fil du temps:
Comment ça marche (pour les curieux): il vérifie le nombre d'itérations effectuées en une seconde, puis multiplie ce chiffre par 74 et ajuste
n
pour correspondre à cette valeur. Exemple: s'il faut une seconde pour effectuer 500 itérations, il faudra 10 secondes pour effectuer 5000 itérations. Notez qu'il est multiplié par 74 et non par 75 car nous avons déjà passé une seconde pour "l'analyse comparative".source et crédits pour les mathématiques
la source
C # - 151 Caractères
la source
C ++
Calcule les partitions de 10 via une méthode plutôt inefficace. Pris 130s pour fonctionner dans une version de compilation sur mon système, mais quelqu'un avec un PC suffisamment rapide devrait être capable de l'exécuter dans ~ 75s ...
la source
Javascript
Cela prendra un certain temps pour alerter quelque chose ... mais ça vaut la peine, car cela vous montrera La réponse à la vie de l'univers et de tout!
Démo
la source
Python
Parfois, une réponse n’est claire qu’à la fin d’un calcul, mais certains de ses aspects sont visibles avant la fin du calcul.
Et peu connue est la séquence des entrées Deep Thought a été semé avec:
271, 329, 322, 488, 79, 15, 60, 1, 9
Par conséquent:
Et voila - la réponse est fournie après 75 secondes.
la source
Assembly (lié par gcc)
Sur un ordinateur suffisamment lent (vitesse du processeur ~ 2Hz), l’exécution de ce test devrait prendre environ 75 secondes:
la source
Utilitaires Bash et Linux:
Deep Thought écoute attentivement tout au long du calcul.
la source
Java (227 caractères)
Qui a dit que les manipulations au niveau des bits ne sont pas amusantes? Ou que Java ne peut pas être déroutant?
Nous bouclons pendant 75 secondes, puis la réponse résonne.
Ungolfed
la source
PureBasic
Compte tenu du fait que des matériels différents produiront des résultats différents, il n’existe pas de réponse fixe à cela. J'utilise une fonction de temps écoulé pour que je sache quand arrêter de calculer.
Fondamentalement, il calculera les deux plus grands nombres premiers après soustraction 42
Plus votre machine est rapide, plus les nombres premiers seront grands :-)
la source
MeatSpace
Marchez sur une distance d'environ 70/4 secondes
servant^H^H^H^Hcomputer
(que ce soit un humain, un chien ou tout ce qui peut ramasser des tuiles numérotées). Placez un grand chiffre4
et un grand chiffre à2
cet endroit . Placez votrecomputer
sur le point de sortie. Démarrez le chronomètre, faites-le marcher jusqu'au dépôt des chiffres et ramenez-y un nombre à la fois.J'ai alloué 5 secondes pour les ramasser et les poser.
la source
Un autre exemple en C #
la source
Rubis
En utilisant la différence de temps ruby, j'ai vérifié le temps d'exécution qui est d'environ
75.014267762
la source
PHP
Ceci est aussi proche que je deviens ce soir. Son exécution sur tecbrat.com , un ancien IBM NetVista P4 exécutant Ubuntu 10.04, affichait 69 secondes et 78 secondes lors de mes 2 dernières exécutions.
la source
JavaScript (obscurcissement au niveau des bits) (pas mal pour 136 octets!)
Cela peut sembler un peu trompeur, mais les fonctions ont été méticuleusement pensées, sachant que la valeur de 75 000 ms serait calculée avant les fonctions utilisées pour calculer 42. C’est assez poétique quand on le regarde, vraiment: )
setTimeout("alert($=((_=_=>(_<<-~-~[])|-~[])(_(-~[])))<<-~[])",($=$=>$<<-~-~-~[]|-~[])((_=_=>_<<-~[]|-~[])(_(_(_($($($(-~[]))))))))^-~[])
la source
Unexpected token >
Je ne suis pas trop bon avec ce genre de choses. Je suis un développeur d'applications, mais je n'ai jamais suivi de formation en langage C et je réalise principalement des applications qui récupèrent des éléments sur des serveurs et rendent les informations plus jolies ...
Je ne sais pas si cela fonctionnera et il y a un peu de code supplémentaire car il est dans une application pour iPhone et j'affiche un hud progrès et une vue d'alerte lorsque 42 sont atteints:
la source