Konvertieren Sie AWG in Zoll

9

AWG (American Wire Gauge) ist eine gängige Methode zur Angabe von Drahtgrößen. Ihre Aufgabe bei dieser Herausforderung ist es, von einem bestimmten Messgerät in den Durchmesser des Drahtes in Zoll umzurechnen.

Die Größe in Zoll für die Anzeigen von 4/0bis 40ist in der folgenden Tabelle angegeben:

Spur zu Zoll Tabelle

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

Klarstellungen

  • Für Messgeräte kleiner als 0können Sie die Eingabe entweder 3/0oder verwenden000
  • Sie müssen nur von dem Gegebenen 4/0bis unterstützen40
  • Die Wikipedia-Seite enthält einige hilfreiche Formeln, die Sie verwenden können, wenn Sie nicht alles fest codieren möchten
  • Geben Sie Ihre Antworten auf mindestens 3 Sig-Feigen aus
  • Dieser , also kürzester Code in Bytes, gewinnt!
Maltysen
quelle
24
Es ist erstaunlich, was Amerikaner tun können, um die Verwendung des metrischen Systems zu vermeiden :-P
Luis Mendo
2
Dies ist keine Kolmogorov-Komplexität, da es sich um eine Konvertierung in eine Ausgabe und nicht um eine konstante Ausgabe handelt
fəˈnɛtɪk
Können wir Eingaben als Array nehmen? 0000as [0, 0, 0, 0]and 40as[40]
Meilen

Antworten:

3

JavaScript (ES7), 36 Byte

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

Nimmt Eingaben im "0000" -Format vor.

Neil
quelle
3

J , 33 26 Bytes

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

Probieren Sie es online aus!

Nimmt die Eingabe als Zeichenfolge mit Anzeigen kleiner als Null als Zeichenfolge von Nullen auf. Findet den Index dieser Zeichenfolge und teilt 0,46 (den Durchmesser von0000 ) durch die 39. Wurzel von 92 (das Verhältnis zwischen den Messgeräten) so oft.

Erläuterung

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
Meilen
quelle
1

Bash + GNU-Utensilien, 47

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

Einfache Auswertung arithmetischer Ausdrücke mit bc . Eingabe als Befehlszeilenparameter.

Messgeräte kleiner als 0 werden als angegeben n/0. Die Bash-Parametererweiterung${1/\/0/*-1+1} konvertiert diese in -ve Zahlen und fügt eine hinzu, wodurch die Arithmetik richtig herauskommt.

bc -lGibt standardmäßig 20 Dezimalstellen an. bcDer Exponentiationsoperator ^kann nur ganzzahlige Exponenten verarbeiten und ln(y*e(x))wird stattdessen verwendet.

Probieren Sie es online aus .

Digitales Trauma
quelle
Erwähnen Sie vielleicht, dass den Ausgabewerten die führende Null fehlt, oder fügen Sie sie selbst hinzu? Als Randnotiz gibt es auch die Möglichkeit, dies direkt in einem bc-Skript zu lösen, allerdings in mehr Bytes.
Seshoumara
1

Gelee , 18 Bytes

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

Probieren Sie es online aus!

Eine monadische Verbindung, die einen Tring nimmt und eine Nummer zurückgibt. Die '0...0'Fälle erzeugen eine zusätzliche Ausgabe, aber der Rückgabewert ist korrekt, wie aus dem Ignorieren der ersten beiden Zeilen hier hervorgeht .

Wie?

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

05AB1E , 25 23 Bytes

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

Probieren Sie es online aus!

Erläuterung

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

Excel, 53 49 Bytes

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

Nimmt Messgeräte kleiner als Null als Zeichenfolge (1/0, 2/0 usw.)

Wernisch
quelle
0

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

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

Probieren Sie es online aus!

Nimmt die größeren Anzeigen als "n / 0".

Xcali
quelle