Conversion AWG en pouces

9

AWG (American Wire Gauge) est un moyen courant de spécifier les tailles de fil. Votre tâche dans ce défi est de convertir d'une jauge donnée au diamètre du fil en pouces.

La taille en pouces pour les jauges de 4/0à 40est indiquée dans le tableau ci-dessous:

Tableau de Jauge en pouces

| AWG | Diameter (Inches) |
|-----|-------------------|
| 4/0 | 0.46              |
| 3/0 | 0.4096            |
| 2/0 | 0.3648            |
| 1/0 | 0.3249            |
| 1   | 0.2893            |
| 2   | 0.2576            |
| 3   | 0.2294            |
| 4   | 0.2043            |
| 5   | 0.1819            |
| 6   | 0.162             |
| 7   | 0.1443            |
| 8   | 0.1285            |
| 9   | 0.1144            |
| 10  | 0.1019            |
| 11  | 0.0907            |
| 12  | 0.0808            |
| 13  | 0.072             |
| 14  | 0.0641            |
| 15  | 0.0571            |
| 16  | 0.0508            |
| 17  | 0.0453            |
| 18  | 0.0403            |
| 19  | 0.0359            |
| 20  | 0.032             |
| 21  | 0.0285            |
| 22  | 0.0253            |
| 23  | 0.0226            |
| 24  | 0.0201            |
| 25  | 0.0179            |
| 26  | 0.0159            |
| 27  | 0.0142            |
| 28  | 0.0126            |
| 29  | 0.0113            |
| 30  | 0.01              |
| 31  | 0.00893           |
| 32  | 0.00795           |
| 33  | 0.00708           |
| 34  | 0.0063            |
| 35  | 0.00561           |
| 36  | 0.005             |
| 37  | 0.00445           |
| 38  | 0.00397           |
| 39  | 0.00353           |
| 40  | 0.00314           |

Clarifications

  • Pour les jauges moins que 0, vous pouvez prendre l'entrée soit comme 3/0ou000
  • Il vous suffit de soutenir le donné 4/0à40
  • La page Wikipedia contient des formules utiles que vous pouvez essayer d'utiliser si vous ne voulez pas tout coder en dur
  • Envoyez vos réponses à au moins 3 sig-figs
  • Ce , donc le code le plus court en octets gagne!
Maltysen
la source
24
C'est incroyable ce que les Américains peuvent faire pour éviter d'utiliser le système métrique :-P
Luis Mendo
2
Ce n'est pas de la complexité kolmogorov car c'est une conversion en sortie et non une sortie constante
fəˈnɛtɪk
Pouvons-nous prendre l'entrée comme un tableau? 0000au fur [0, 0, 0, 0]et à 40mesure[40]
miles

Réponses:

3

JavaScript (ES7), 36 octets

s=>.46/92**(((+s||1-s.length)+3)/39)

Prend l'entrée au format "0000".

Neil
la source
3

J , 33 26 octets

0.46%92^39%~*@".{3+".,~1-#

Essayez-le en ligne!

Prend l'entrée comme une chaîne avec des jauges inférieures à zéro comme une chaîne de zéros. Trouve l'indice de cette chaîne et divise 0,46 (le diamètre de 0000) par la 39e racine de 92 (le rapport entre les jauges) autant de fois.

Explication

0.46%92^39%~*@".{3+".,~1-#  Input: string S
                         #  Length of S
                       1-   Subtract it from 1
                   ".,~     Eval S and append it, forms [1-len(S), eval(S)]
                 3+         Add 3 to each
            *@".            Sign of the eval
                {           Use that to index into the previous list
        39%~                Divide by 39
     92^                    Raise 92 to that power
0.46%                       Divide 0.46 by that and return
miles
la source
1

Utilitaires Bash + GNU, 47

bc -l<<<"e(l(92)*(36-(${1/\/0/*-1+1}))/39)/200"

Évaluation de l'expression arithmétique simple à l'aide de bc. Entrée donnée comme paramètre de ligne de commande.

Les jauges inférieures à 0 sont données comme n/0. L'extension du paramètre bash ${1/\/0/*-1+1}convertit ces nombres en -ve et en ajoute un qui rend l'arithmétique juste.

bc -ldonne 20 décimales par défaut. bcL'opérateur d'exponentiation ^ne peut gérer que les exposants entiers, il ln(y*e(x))est donc utilisé à la place.

Essayez-le en ligne .

Traumatisme numérique
la source
Peut-être mentionner que les valeurs de sortie n'ont pas le zéro de tête ou l'ajouter vous-même? En remarque, il est également possible de résoudre ce problème directement dans un script bc, mais en plusieurs octets.
seshoumara
1

Gelée , 18 octets

VoLC$+3÷39µ92*.46÷

Essayez-le en ligne!

Un lien monadique prenant un tring et renvoyant un numéro. Les '0...0'cas produisent une sortie supplémentaire, mais la valeur de retour est correcte, comme on peut le voir en ignorant les deux premières lignes ici .

Comment?

VoLC$+3÷39µ92*.46÷ - Main link: guageString
V                  - evaluate as Jelly code (a string of zeros evaluates to 0)
    $              - last two links as a monad
  L                -     length
   C               -     complement (1-length)
 o                 - Or (integer value for > 0, 1-lenght for strings of zeros)
     +3            - add 3
       ÷39         - divide by 39
          µ        - monadic chain separation (call the result p)
              .46÷ - 0.46 divided by
           92*     - 92 raised to the power of p
Jonathan Allan
la source
0

05AB1E , 25 23 octets

8Ø50/92ID1‹ig(>}3+39/m/

Essayez-le en ligne!

Explication

8Ø                       # push the 8th prime (0-indexed) = 23
  50/                    # divide by 50 = 0.46
     92                  # push 92
       I                 # push input
        D1‹i   }         # if input < 1
            g(>          # calculate -len(input)+1
                3+       # add 3
                  39/    # divide by 39
                     m   # raise 92 to this power
                      /  # divide 0.46 by this
Emigna
la source
0

Excel, 53 49 octets

=92^((36-IF(ISNUMBER(A1),A1,49-CODE(A1)))/39)/200

Prend des jauges inférieures à zéro comme chaîne (1/0, 2/0 etc.)

Wernisch
la source
0

Perl 5 , 39 + 1 (-p) = 40 octets

s/(.).0/1-$1/e;$_=.005*92**((36-$_)/39)

Essayez-le en ligne!

Prend les plus grandes jauges comme "n / 0".

Xcali
la source