Vous êtes enchaîné à une chaise. Sous vous se trouve un énorme volcan. Une horloge de 12 heures à côté de vous coche de façon inquiétante, et vous voyez qu'elle a des fils menant de l'arrière à une chaîne, qui vous déposera au centre de la terre. Enregistré sur l'horloge est une note:
Chaque aiguille d'horloge a une électrode. Lorsque les deux aiguilles de l'horloge sont dans la même position, la puissance circule et vous mourez. Autrement dit, sauf si vous pouvez me dire l'heure exacte à laquelle cela se produira, à la minute près.
Vous avez un ordinateur qui connaît tous les langages de programmation. Vous devez créer le programme le plus court (c'est le golf de code , et les failles standard sont interdites) que vous pouvez, et dire au mauvais scientifique quelle heure sera. Votre programme doit prendre en compte (dans n'importe quelle méthode), composé de l'heure et des minutes. Il doit renvoyer l'heure et la minute suivantes (dans n'importe quelle méthode) où cela se produit.
Selon la page OEIS , les onze temps de chevauchement sont les suivants:
00:00:00 plus 0/11 s, 01:05:27 plus 3/11 s,
02:10:54 plus 6/11 s, 03:16:21 plus 9/11 s,
04:21:49 plus 1/11 s, 05:27:16 plus 4/11 s,
06:32:43 plus 7/11 s, 07:38:10 plus 10/11 s,
08:43:38 plus 2/11 s, 09:49:05 plus 5/11 s,
10:54:32 plus 8/11 s.
La prochaine fois serait 12:00:00. Les secondes et leurs parties fractionnaires ne sont pas nécessaires pour ce défi. Arrondissez simplement à la minute la plus proche.
Cas de test:
0:00 (Or 12:00) > 1:05
1:00 > 1:05
11:56 > 12:00 (Or 0:00)
6:45 > 7:38
5:00 > 5:27
6:30 > 6:33 (round up)
Le programme peut être une fonction ou un programme complet. Je m'en fiche si vous choisissez 0:00
ou 12:00
, et les deux sont acceptables. Bonne chance!
Réponses:
JavaScript (Node.js) ,
5447 octets (arrondi au plus proche)-7 octets. Merci @ user202729
Essayez-le en ligne!
JavaScript (Node.js) ,
403344 octets (arrondi vers 0)-3 octets grâce à @Arnauld
-4 octets grâce à @Kevin Cruijssen
Explication
Note latérale: Je suis presque sûr que cela peut être le golf par quelqu'un avec plus de connaissances en mathématiques. Je sais à peine résumer et multiplier
Essayez-le en ligne!
la source
05:00
devrait sortir05:27
mais sort à la05:25
place, et06:45
devrait sortir07:38
mais sort à la07:35
place. Voici peut-être une séquence oeis utile: A17818111:56
semble sortir00:05
au lieu de00:00
(ou12:00
).a=(a+=b>=a*5)%12
qu'on peut raccourcir un peu mais je ne suis pas trop bon pour çaMath.round(x)
juste0|x+.5
?J , 31 octets
Essayez-le en ligne!
La façon d'arrondir un nombre dans J est d'ajouter
0.5
et de prendre la parole (<.
). Prend trop d'octets ...Explication
12 60&#.
(conversion de base mixte) convertit d'un tableau de [heure, minute] en minute écoulée depuis 0:00.Notez qu'à partir de 0h00, toutes les 12/11 heures (soit 720/11 minutes), les deux mains se chevauchent une fois.
Par conséquent, étant donné la valeur des minutes, arrondissez-la au multiple de 720/11 le plus proche (différent de lui-même). Cela peut être réalisé par
*
11/720 (J a un littéral rationnel11r720
), prenez la parole<.
, incrémentez>:
, puis multipliez-le par 720/11.Notez que "multiplier par 11/720" et "multiplier par 720/11" sont deux actions inverses, ainsi que "convertir de [heure, minute] en nombre de minutes passées" et vice versa. Heureusement, J a intégré
&.
(sous), qui inverse une action après avoir appliqué une transformation.Après cela, il suffit d'arrondir:
0.5
+
alors<.
.la source
R , 68 octets
Essayez-le en ligne!
Exploiter l'équation:
où
index
est 0 pour la première position qui se chevauchent (00:00), 1 pour la 2e et ainsi de suite ...la source
(a[...]...c(60,1))
6:30 > 6:33
.R , 88 octets
Essayez-le en ligne!
Augmentez le temps d'une minute. Vérifie l'angle. S'il n'est pas assez proche, boucle jusqu'à ce qu'une solution soit trouvée.
la source
Python 3 ,
8078 octetsCeci est ma première soumission, donc les critiques constructives sont les bienvenues :)
-2 octets grâce à @Jo King
Essayez-le en ligne! (78)
Essayez-le en ligne! (80)la source
Java 8,
8982 octetsFixé. Va voir si je peux jouer au golf plus tard (probablement en portant une autre réponse) ..
Essayez-le en ligne.
Explication:
FAIRE
la source
f.apply(56).apply(10)
rendements11 59
6:30 > 6:33
.Apl (Dyalog Unicode) , 28 octets
Essayez-le en ligne!
Explication
((⍳11),⍪0,+\∊5/⊂5 6)
est une matrice de temps où les aiguilles se chevauchent (imprimées à la fin du lien tio)(⍸⌷1⊖⊣)⎕
trouve l'intervalle dans lequel l'entrée est dans la matrice et les index en dessous s'enroulant autour.la source
C # (.NET Core) , 70 octets
Essayez-le en ligne!
Je pense qu'il passe tous les cas de test. Bien que le cas h = 11 soit un peu moche
Explication:
la source
6:30 > 6:33
.JavaScript, 41 octets
Afficher l'extrait de code
la source
Gelée , 25 octets
Essayez-le en ligne!
Un lien monadique qui prend le temps comme une liste à deux entiers et renvoie une liste à deux entiers correspondant à la prochaine fois que les mains doivent toucher.
la source
Perl 6 , 43 octets
Essayez-le en ligne!
Un lambda anonyme quel qu'il soit qui prend deux entiers représentant les heures et les minutes et renvoie les heures et les minutes dans l'ordre inverse. À l'heure actuelle, il n'est pas cohérent lorsque vous saisissez une heure alignée, qu'elle émette la prochaine heure alignée ou reste la même. J'attends que OP réponde à ce sujet, mais pour l'instant je le traite comme indéfini.
Explication
la source