Mengurangi pecahan dengan cara yang salah
Dalam tantangan kode-golf ini Anda harus menemukan pecahan yang dapat direduksi dengan cara yang salah tetapi masih berakhir dalam jumlah yang sama.
Catatan: mengurangi pecahan dengan cara yang salah di sini memiliki definisi yang tepat, lihat detailnya.
Contoh:
64/16 = 6 4/1 6 = 4/1 = 4
Tentu saja Anda tidak bisa hanya menyerang kedua 6es tetapi di sini Anda masih berakhir dengan nilai yang benar. Dalam tantangan ini, Anda harus menemukan contoh seperti ini.
Detail
Anda harus menulis fungsi / program yang menerima satu bilangan bulat positif n
sebagai input dan output / mengembalikan daftar / array fraksi dalam format
numerator1,denominator1,numerator2,denominator2,...
Program harus mencari tahu untuk setiap fraksi a/b
dengan a+b=n
dan a,b>0
apakah itu dapat dikurangi dengan cara yang salah . (Tidak masalah apakah jika dapat dikurangi dengan cara konvensional atau apakah ada banyak kemungkinan pengurangan, itu hanya harus dimungkinkan untuk menguranginya dengan cara yang salah dalam setidaknya satu cara.)
Definisi cara yang salah: Fraksi dapat dikurangi dengan cara yang salah jika dan hanya jika urutan angka yang sama berturut-turut muncul dalam a dan b dan jika nilai fraksi tetap sama jika Anda menghapus substring.
Contoh: 1536/353 dapat 'direduksi' menjadi 16/3 tetapi kedua nilai tersebut tidak sama sehingga Anda tidak dapat mengurangi fraksi ini dengan cara yang salah .
Perhatikan bahwa definisi mengurangi cara yang salah juga dapat mencakup fraksi yang dikurangi dengan cara yang benar: 110/10 = 11/1
ada dalam definisi mengurangi cara yang salah meskipun itu merupakan langkah yang valid.
Mencetak gol
Jumlah byte terkecil yang menang. Anda dapat menulis fungsi atau program yang menerima bilangan bulat dan mengembalikan array atau program yang menggunakan stdin / stdout atau Anda dapat mempertimbangkan dan disimpan dalam variabel dan pada akhir program daftar harus disimpan dalam variabel lain.
Uji kasus
Harap sertakan berikut testcases (Katakan padaku mana yang harus saya tambahkan, saya tidak tahu berapa banyak fraksi yang ada / berapa banyak contoh yang diharapkan)
n=80 (64/16 should be in this list)
n=147 (98/49 should be in this list)
n=500 (294/196 should be in this list) WRONG since 294+196 != 500 Thanks Falko
1010/10 = 101/1 && 1010/10 /= 110/1
n=147
) tidak benar: 49/89 != 4/8
.