Tulis sebuah program atau fungsi yang mengambil input: semua resistor tersedia dan nilai resistansi dan menampilkan nilai kebenaran apakah mungkin untuk mendapatkan resistansi dengan menggunakan resistor tersebut.
Aturan:
Format apa pun untuk input akan dilakukan.
Akan ada setidaknya 1 resistor yang tersedia dan program Anda akan menghasilkan setidaknya 10 resistor yang tersedia.
Resistansi semua resistor yang tersedia dan resistansi yang diperlukan akan berupa bilangan bulat positif.
Untuk resistor yang tersedia jika nilai fraksional juga dimungkinkan, resistansi yang diperlukan mungkin merupakan nilai yang diperkirakan. (Lihat contoh)
Output harus berupa 2 nilai unik untuk Kemungkinan dan Tidak mungkin.
Resistor dapat dihubungkan dengan cara apa pun.
Resistansi Seri : Untuk resistansi n dalam seri: Hasil = R1 + R2 + R3 + .... Rn
Resistansi Paralel : Untuk resistensi n secara paralel: Hasil = 1 / (1 / R1 + 1 / R2 + 1 / R3 + .... + 1 / Rn)
Sirkuit mungkin tidak memerlukan semua resistor untuk mendapatkan resistansi yang diperlukan (output True jika itu yang terjadi).
Pemenang:
Ini adalah kode-golf sehingga kode-pendek menang.
Contoh:
R List
110 220,220 -> True
440 220,220 -> True
550 400,300 -> False
3000 1000,3000 -> True
750 1000,3000 -> True
333 1000,1000,1000 -> True (1000||1000||1000=333.333)
667 1000,1000,1000 -> True ((1000+1000)||1000=666.6666)
8000 1000,1000,7000 -> True
190 100,200,333,344,221 -> True
193 105,200,333,344,221 -> True
400 200,100 -> False
Penjelasan untuk dua contoh terakhir: /physics/22252/resistor-circuit-that-isnt-parallel-or-series
sumber
3 3 1
,3 3 2
?Jawaban:
Python 3 , 253 byte
Saya mengambil PowerSet dari semua nilai resistor dan kemudian menghitung jumlah untuk seri dan 1 / jumlah (1 / nilai) untuk paralel dan kemudian saya mengambil PowerSet dari dua set ini. Ketika Anda mengambil jumlah semua himpunan bagian dan memasukkannya ke dalam himpunan maka himpunan himpunan ini berisi nilai atau tidak. -> mengembalikan Benar / Salah
@stephen terima kasih :)
sumber
b != 0
->b!=0
.Japt , 52 byte
Cobalah!
Ini yang sulit, dan saya harus melakukan beberapa hal aneh untuk membuatnya bekerja. Saya tidak dapat membuktikan secara matematis bahwa ini bekerja untuk semuanya, tetapi ini berfungsi untuk semua test case dan juga test case tambahan yang saya usulkan . Secara khusus, saya tahu bahwa fungsi yang saya definisikan disebut
W
memberikan hasil yang berbeda tergantung pada urutan resistor dalam inputnya, jadi saya menjalankannya pada setiap kemungkinan pemesanan dari setiap kombinasi resistor yang mungkin. Saya juga tahu bahwa itu akan menghasilkan daftar resistensi yang mungkin dibuat menggunakan resistor input. Saya tidak tahu dengan kepastian 100% bahwa kedua hal bersama-sama berakhir dengan setiap kemungkinan perlawanan.Penjelasan:
sumber
Ruby , 153 byte
Cobalah online!
Kasar. Saya sungguh-sungguh.
sumber