introduction
Ceci est l'un de mes puzzles mathématiques préférés.
Étant donné un chiffre (disons 3) et le nombre de fois où utiliser ce chiffre (disons 5), générez 10 expressions qui donnent 1, 2, 3, 4, 5, 6, 7, 8, 9 et 10 en utilisant seulement +, -, ×, ÷, ^ et √ (racine) (les crochets sont autorisés pour regrouper les opérations).
Par exemple:
(3^3 + 3)/(3 + 3) = (33 - 3)/(3 + 3) = 3 + 3/3 + 3/3 = 5
Notez que tout ce qui précède utilise cinq 3 et les opérations mathématiques et aboutissent à 5. Vous pouvez également utiliser un 3 avant √ pour désigner une racine de cube. Il en va de même pour l'utilisation de 4 avant √ pour désigner une quatrième racine.
Notez également que deux 3 peuvent être utilisés pour former 33, ou trois 3 peuvent être utilisés pour former 333 et ainsi de suite.
Défi
- Vous recevrez deux nombres (tous deux compris entre 1 et 5) comme argument de fonction, STDIN ou argument de ligne de commande.
- Le premier nombre indique le chiffre à utiliser et le deuxième nombre indique le nombre de fois que ce chiffre doit être utilisé dans l'expression.
- Votre programme doit générer un tableau de taille 10 (ou 10 nombres séparés par des espaces) où chaque élément indique si une expression mathématique (en utilisant uniquement les opérateurs autorisés) résultant en
(index + 1)
nombre est possible ou non en utilisant une valeur de vérité / fausse.
Par exemple, si l'entrée est
1 3
Ensuite, la sortie doit être
[1, 1, 1, 0, 0, 0, 0, 0, 0, 1]
car seuls 1, 2, 3 et 10 peuvent être exprimés à l'aide de trois 1.
But
- Il s'agit d'un code-golf, donc la longueur minimale du code en octets l'emporte.
Prime
Print-em-all [−50]
Soustrayez 50 de votre score si les éléments du tableau de sortie sont égaux au nombre total de combinaisons plausibles pour obtenir le (index + 1)
valeur au lieu des valeurs véridiques ou fausses.
Par exemple, s'il n'y a que trois combinaisons possibles de cinq 3 années qui aboutissent à 5, puis 4 du tableau de sortie e entrée doit être 3.
Mathématiques extrêmes [−100]
Soustrayez 100 de votre score si les éléments du tableau de sortie contiennent au moins une des expressions réelles qui résultent de la (index + 1)
valeur.
Par exemple, si vous utilisez cinq 3 de la 4 du tableau de sortie e entrée peut être (3^3 + 3)/(3 + 3)
, (33 - 3)/(3 + 3)
ou3 + 3/3 + 3/3
Overkilled [−200]
Soustrayez 200 de votre score si les éléments du tableau de sortie contiennent toutes les combinaisons possibles (séparées par |
). Ce bonus est ajouté au bonus Extreme Maths , vous obtenez donc -300 au total.
Par exemple, si vous utilisez cinq 3 de 4 du tableau de sortie e l'élément doit être(3^3 + 3)/(3 + 3)|(33 - 3)/(3 + 3)|3 + 3/3 + 3/3
Remarque: deux expressions quelconques pour obtenir le même résultat doivent être logiquement différentes avec une approche différente dans les deux.
Par exemple, pour obtenir 5 en utilisant cinq 3, 3 + 3/3 + 3/3
c'est la même chose 3/3 + 3 + 3/3
ou 3/3 + 3/3 + 3
parce que la même approche est adoptée pour chacun d'eux. (3^3 + 3)/(3 + 3)
et (33 - 3)/(3 + 3)
diffèrent, car le 30 dans le numérateur est obtenu via différentes approches.
MISE À JOUR : Après avoir parcouru toutes les réponses, il a été constaté que toutes les réponses avaient des imperfections dues à des cas marginaux d'unaire-
et √. Ainsi, l'absence de ces cas marginaux a été jugée acceptable dans la mesure où l'intégralité des réponses est impliquée.
C'est une question difficile, mais plutôt intéressante.
Bon golf!
1
s?