Écrivez un programme ou une fonction qui prend en entrée: toutes les résistances disponibles et une valeur de résistance et génère une valeur véridique de savoir s'il est possible ou non d'obtenir la résistance en utilisant ces résistances.
Règles:
N'importe quel format d'entrée fera l'affaire.
Il y aura au moins 1 résistance disponible et votre programme devrait sortir pour au moins 10 résistances disponibles.
La résistance de toutes les résistances disponibles et la résistance requise seront des entiers positifs.
Pour les résistances disponibles, si une valeur fractionnaire est également possible, la résistance requise peut être la valeur approximative (voir l'exemple).
La sortie doit avoir 2 valeurs uniques pour Possible et Non possible.
Les résistances peuvent être connectées de n'importe quelle manière.
Résistance série : Pour n résistances en série: Résultat = R1 + R2 + R3 + .... Rn
Résistance parallèle : Pour n résistances en parallèle: Résultat = 1 / (1 / R1 + 1 / R2 + 1 / R3 + .... + 1 / Rn)
Le circuit peut ne pas nécessiter toutes les résistances pour obtenir la résistance requise (sortie True si c'est le cas).
Gagnant:
C'est le code-golf, donc le code le plus court l'emporte.
Exemples:
R List
110 220,220 -> True
440 220,220 -> True
550 400,300 -> False
3000 1000,3000 -> True
750 1000,3000 -> True
333 1000,1000,1000 -> True (1000||1000||1000=333.333)
667 1000,1000,1000 -> True ((1000+1000)||1000=666.6666)
8000 1000,1000,7000 -> True
190 100,200,333,344,221 -> True
193 105,200,333,344,221 -> True
400 200,100 -> False
Explication des deux derniers exemples: /physics/22252/resistor-circuit-that-isnt-parallel-or-series
la source
3 3 1
,3 3 2
?Réponses:
Python 3 , 253 octets
Je prends le jeu de puissance de toutes les valeurs de résistance, puis je calcule les sommes pour les séries et 1 / somme (1 / valeurs) pour parallèle, puis je prends un jeu de puissance de ces deux ensembles. Lorsque vous prenez la somme de tous les sous-ensembles et les mettez dans un ensemble, cet ensemble eiter contient ou non la valeur. -> retourner Vrai / Faux
@stephen merci :)
la source
b != 0
->b!=0
.Japt , 52 octets
Essayez!
Ce fut difficile, et j'ai dû faire deux ou trois choses étranges pour le faire fonctionner. Je ne peux pas prouver mathématiquement que cela fonctionne pour tout, mais cela fonctionne pour tous les cas de test ainsi que mon cas de test supplémentaire proposé . Plus précisément, je sais que la fonction que je définis appelée
W
donne des résultats différents en fonction de l'ordre des résistances en entrée donc je l'exécute sur chaque ordre possible de chaque combinaison possible de résistances. Je sais également que cela produira une liste de résistances qu'il est possible de créer en utilisant les résistances d'entrée. Je ne sais pas avec 100% de certitude que ces deux choses ensemble se retrouvent avec toutes les résistances possibles.Explication:
la source
Rubis , 153 octets
Essayez-le en ligne!
Force brute. Je suis sérieux.
la source