Convertir AWG a pulgadas

9

AWG (American Wire Gauge) es una forma común de especificar el tamaño de los cables. Su tarea en este desafío es convertir de un calibre dado al diámetro del cable en pulgadas.

El tamaño en pulgadas para los medidores de 4/0a 40se muestra en la tabla a continuación:

Tabla de calibre a pulgadas

| 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           |

Aclaraciones

  • Para calibres menores que 0, se puede tomar la entrada como sea 3/0o000
  • Solo tienes que apoyar de lo dado 4/0a40
  • La página de Wikipedia tiene algunas fórmulas útiles que puede intentar usar si no desea codificar todo
  • Envíe sus respuestas a al menos 3 sig-figs
  • Este , ¡el código más corto en bytes gana!
Maltysen
fuente
24
Es sorprendente lo que los estadounidenses pueden hacer para evitar el uso del sistema métrico :-P
Luis Mendo
2
Esto no es complejidad kolmogorov, ya que es una conversión a salida y no una salida constante
f --nɛtɪk
¿Podemos tomar la entrada como una matriz? 0000as [0, 0, 0, 0]and 40as[40]
miles

Respuestas:

3

JavaScript (ES7), 36 bytes

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

Toma entrada en formato "0000".

Neil
fuente
3

J , 33 26 bytes

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

Pruébalo en línea!

Toma la entrada como una cadena con medidores menores que cero como una cadena de ceros. Encuentra el índice de esa cadena y divide 0.46 (el diámetro de 0000) por la raíz 39 de 92 (la relación entre los medidores) que muchas veces.

Explicación

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
millas
fuente
1

Bash + GNU utils, 47

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

Evaluación de expresión aritmética directa usando bc. Entrada dada como un parámetro de línea de comando.

Los indicadores de menos de 0 se dan como n/0. La expansión del parámetro bash ${1/\/0/*-1+1}convierte estos números en -ve y agrega uno que hace que la aritmética salga bien.

bc -lda 20 decimales por defecto. bcEl operador de exponenciación ^solo puede manejar exponentes enteros, por lo que ln(y*e(x))se usa en su lugar.

Pruébalo en línea .

Trauma digital
fuente
¿Quizás mencionar que los valores de salida carecen del cero inicial o agregarlo usted mismo? Como nota al margen, también existe la posibilidad de resolver esto directamente en un script bc, aunque en más bytes.
seshoumara
1

Jalea , 18 bytes

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

Pruébalo en línea!

Un enlace monádico que toma un tring y devuelve un número. Los '0...0'casos producen una salida adicional, pero el valor de retorno es correcto, como se puede ver al ignorar las dos primeras líneas aquí .

¿Cómo?

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
fuente
0

05AB1E , 25 23 bytes

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

Pruébalo en línea!

Explicación

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
fuente
0

Excel, 53 49 bytes

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

Toma medidores inferiores a cero como cadena (1/0, 2/0, etc.)

Wernisch
fuente