Resistor umumnya memiliki pita kode warna yang digunakan untuk mengidentifikasi resistensi mereka dalam Ohm . Dalam tantangan ini kita hanya akan mempertimbangkan resistor 4-band, tan, aksial-lead normal. Kami akan menyatakannya sebagai:
xyzt
Di mana x
band pertama untuk angka signifikan pertama, y
adalah band kedua untuk angka signifikan kedua, z
band ketiga untuk pengganda, dan t
merupakan band keempat untuk toleransi .
Masing-masing xyzt
mewakili huruf yang menyingkat warna band:
K = Black
N = Brown
R = Red
O = Orange
Y = Yellow
G = Green
B = Blue
V = Violet
A = Gray
W = White
g = Gold
s = Silver
_ = None
Jadi, misalnya, NKOg
adalah beberapa resistor khusus.
Resistansi dapat dihitung dengan bantuan tabel ini:
Seperti yang ditunjukkan tabel:
x
dany
dapat setiap huruf kecualig
,s
, dan_
.z
bisa apa saja kecuali_
.- Kami akan membatasi
t
hanya menjadig
,s
atau_
.
( Inilah kalkulator resistensi berguna yang menangani set resistor yang sama persis dengan kami. )
Perlawanan adalah 10 * x + y
kali z
pengganda, dengan toleransi t
persentase.
Misalnya, untuk menghitung hambatan
NKOg
, kita melihat bahwa:
N
berarti Brown untuk 1.K
berarti Hitam untuk 0.O
berarti Oranye untuk 10 3 .g
berarti Emas untuk ± 5%.Jadi perlawanannya
(10*1 + 0)*10^3
→10000 Ω ±5%
.
Tantangan
Tulis program atau fungsi yang mengambil string karakter 4 formulir xyzt
dan mencetak atau mengembalikan hambatan dalam formulir [resistance] Ω ±[tolerance]%
.
- Resistor mungkin "terbalik", yaitu dalam urutan terbalik
tzyx
. Misalnya, keduanyaNKOg
dangOKN
harus menghasilkan10000 Ω ±5%
. - Perlawanan selalu dalam ohm polos, tidak pernah kilohms, megohms, dll.
Ω
dapat diganti denganohms
, mis10000 ohms ±5%
.±
dapat diganti dengan+/-
, mis10000 Ω +/-5%
.- Memiliki titik nol di sebelah kanan titik desimal baik-baik saja. (mis.
10000.0 Ω +/-5%
) - Anda dapat berasumsi bahwa input selalu valid (
x
dany
tidak pernahgs_
;z
tidak pernah_
;t
hanyags_
). - Semua 10 × 10 × 12 × 3 = 3600 kemungkinan resistor (2 × 3600 input yang mungkin) perlu didukung bahkan jika beberapa kombinasi pita warna tidak diproduksi dalam kehidupan nyata.
Kode terpendek dalam byte menang.
Contohnya
gOKN
→10000 ohms +/-5%
KKR_
→0 Ω +/-20%
ggKN
→1 ohms ±5%
ggGO
→3.5 Ω ±5%
ssGO
→0.350 Ω ±10%
GOOs
→53000 ohms +/-10%
YAK_
→48.0 ohms +/-20%
_WAV
→78000000000 Ω ±20%
gBBB
→66000000.000 ohms ±5%
_RYR
→2400.00 ohms ±20%
Iff Anda menikmati tantangan saya, pertimbangkan memeriksa Block Building Bot Flocks!
sumber
:(2/'e*s~
menyimpan[
.e
mana itu perlu, tapi saya tidak pernah memikirkan/
dan*
Python 3,
130114 bytesunting: @ Sp3000 menunjukkan bahwa pemesanan dapat dideteksi dengan
min(v,v[::-1])
lebih baik daripadav[::(1,-1)[v[0]in'sg_']]
(menghemat 10 byte), tidak memeriksa indeks_
dan menghapus beberapa spasi kosong yang tidak perlu.sumber
min()
untuk mendeteksi pemesanan yang benar - bagus.Perl, 93 byte
sumber
Haskell,
135 132130 bytePenjelasan:
Berkat nimi, saya mencukur 2 byte lagi.
sumber