Ubah AWG menjadi Inci

9

AWG (American Wire Gauge) adalah cara umum menentukan ukuran kawat. Tugas Anda dalam tantangan ini adalah mengkonversi dari ukuran yang diberikan ke diameter kawat dalam inci.

Ukuran dalam inci untuk pengukur dari 4/0ke 40ditunjukkan pada tabel di bawah ini:

Ukur tabel sampai inci

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

Klarifikasi

  • Untuk alat pengukur kurang dari 0, Anda dapat mengambil input sebagai salah satu 3/0atau000
  • Anda hanya perlu mendukung dari yang diberikan 4/0kepada40
  • The halaman Wikipedia memiliki beberapa rumus membantu Anda dapat mencoba untuk digunakan jika Anda tidak ingin hardcode segalanya
  • Keluarkan jawaban Anda untuk setidaknya 3 sig-ara
  • ini , sehingga kode terpendek dalam byte menang!
Maltysen
sumber
24
Sungguh menakjubkan apa yang bisa dilakukan orang Amerika untuk menghindari penggunaan sistem metrik :-P
Luis Mendo
2
Ini bukan kolmogorov-kompleksitas karena ini adalah konversi ke keluaran dan bukan keluaran konstan
fəˈnɛtɪk
Bisakah kita mengambil input sebagai array? 0000as [0, 0, 0, 0]dan 40as[40]
miles

Jawaban:

3

JavaScript (ES7), 36 byte

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

Mengambil input dalam format "0000".

Neil
sumber
3

J , 33 26 byte

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

Cobalah online!

Mengambil input sebagai string dengan pengukur kurang dari nol sebagai string nol. Temukan indeks string itu dan bagilah 0,46 (diameter 0000) dengan akar ke-39 dari 92 (rasio antara pengukur) yang berkali-kali.

Penjelasan

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
mil
sumber
1

Utilitas Bash + GNU, 47

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

Evaluasi ekspresi aritmatika langsung menggunakan bc. Input diberikan sebagai parameter baris perintah.

Pengukur kurang dari 0 diberikan sebagai n/0. Ekspansi parameter bash ${1/\/0/*-1+1}mengonversi angka-angka ini menjadi -ve dan menambahkan angka yang membuat aritmatika keluar dengan benar.

bc -lmemberikan 20 tempat desimal secara default. bcOperator eksponensial ^hanya dapat menangani eksponen integer sehingga ln(y*e(x))digunakan sebagai gantinya.

Cobalah online .

Trauma Digital
sumber
Mungkin menyebutkan bahwa nilai output tidak memiliki nol memimpin atau menambahkannya sendiri? Sebagai catatan, ada juga kemungkinan untuk menyelesaikan ini secara langsung dalam skrip bc, meskipun dalam lebih banyak byte.
seshoumara
1

Jelly , 18 byte

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

Cobalah online!

Tautan monadik yang mengambil tring dan mengembalikan nomor. The '0...0'kasus menghasilkan beberapa output tambahan, tetapi nilai kembali benar, sebagaimana dapat dilihat dengan mengabaikan dua baris pertama di sini .

Bagaimana?

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

05AB1E , 25 23 byte

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

Cobalah online!

Penjelasan

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

Excel, 53 49 byte

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

Mengambil pengukur kurang dari Nol sebagai Tali (1/0, 2/0 dll.)

Wernisch
sumber
0

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

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

Cobalah online!

Mengambil pengukur yang lebih besar sebagai "n / 0".

Xcali
sumber