Bons golfeurs,
Notre défi d'aujourd'hui est inspiré des bandes dessinées XKCD 356 et 370 . Nous allons écrire un programme pour calculer la résistance d'un groupe de résistances. Un avertissement que cela est presque assez difficile pour justifier d'être un défi de code, mais je pense qu'il y a un certain art à écrire des programmes légèrement plus complexes dans un format golfique. Le plus petit nombre de personnages gagne.
Le calcul de la résistance repose sur les deux formules suivantes:
- Si les résistances sont en série, la résistance est la somme de la résistance de chaque résistance
- Si les résistances sont en parallèle, la résistance est l'inverse de la somme de l'inverse de la résistance de chaque résistance
Donc - par exemple:
Votre défi est de calculer, dans le moins de caractères possible, la résistance d'un groupe de jusqu'à 64 résistances. Mes excuses pour la complexité, en particulier des règles d'entrée. J'ai essayé de les définir de manière à ce que chaque langue soit utilisable.
Chaque résistance sera connectée à 2 ou plusieurs autres résistances.
L'entrée est garantie pour être valide, avec seulement une entrée et un point de sortie, qui se connecteront
Le réseau sera parallèle en série pour éviter d'exiger plus de maths que ce qui est présenté
L'entrée se fera par fichier, argument ou stdin, selon ce qui est approprié pour votre langue.
L'entrée consistera en une série d'instructions séparées par des sauts de ligne ou des virgules avant constituées d'un entier de la résistance de la résistance et d'espaces séparant les ID des résistances auxquelles un côté de la résistance est connecté.
L'ID de la première résistance sera 1, incrémentant de un pour chaque résistance successive
Le départ aura toujours un ID de 0
La résistance finale aura toujours une résistance de 0 ohms et n'aura que les connexions définies dans sa ligne
Par exemple:
Pourrait être représenté comme
3 0
6 1
1 0
5 0
0 2 3 4
- La sortie peut être vers stdout ou fichier. Il peut être représenté de l'une des manières suivantes:
- Un nombre avec un minimum de 2 décimales, suivi d'une nouvelle ligne
- Une fraction composée d'un entier (le numérateur), d'une barre oblique et d'un autre entier (le dénominateur), suivie d'une nouvelle ligne. Il n'est pas nécessaire que la fraction soit dans sa forme la plus basse - 4/4 ou 10/8 sont, par exemple, acceptables. La fraction doit être précise au 1/100. Il n'y a aucun bonus pour être parfaitement précis - cela est fourni est une béquille pour permettre aux langues sans opérations à virgule fixe ou flottante de rivaliser.
J'espère que cela couvre tous les points. Bonne chance!
1 2/1 0/0 1
valide?
/
n'est pas une barre oblique inverse. Voulez-vous dire `\ 'ou une barre oblique?