Catatan: Ini adalah versi pengerasan radiasi dari tantangan saya sebelumnya Pristine Bit Memeriksa . Ini seharusnya jauh lebih sulit daripada yang itu.
Tulis sebuah program / fungsi yang mengambil dua bilangan bulat dalam kisaran hingga inklusif, dan mengembalikan apakah bentuk biner dari angka-angka itu persis berbeda satu bit.
Sebagai contoh, dan memiliki bentuk biner 00000001
dan 00000000
, yang terpisah satu bit. Demikian pula, dan adalah 010011000
dan 000011000
, jadi mereka mengembalikan true.
Namun , kode Anda harus dikeraskan dengan radiasi , sehingga jika ada satu bit dalam program Anda yang dibalik, itu harus tetap berfungsi dengan benar. Misalnya, jika program Anda adalah byte tunggala
(01100001
), maka semua 8 program yang mungkin dimodifikasi:
á ! A q i e c `
masih harus bekerja dengan benar. Pastikan Anda memodifikasi dengan byte (misalnya di á
sana sebenarnya mewakili byte , bukan karakter dua byte yang sebenarnya á
).
Kasus uji:
Dengan truthy berarti mereka adalah berbeda dengan satu bit.
0,1 => Truthy
1,0 => Truthy
152,24 => Truthy
10,10 => Falsey
10,11 => Truthy
11,12 => Falsey
255,0 => Falsey
Aturan:
- Berikan kerangka pengujian yang dapat memverifikasi bahwa program Anda sudah dikeraskan dengan benar, karena akan ada banyak program yang mungkin (jumlah byte * 8), atau bukti validitas lengkap.
- Harap pastikan untuk memeriksa ulang program anda adalah valid sebelum Anda posting.
- Keluaran bisa berupa kebenaran / falsey (baik itu baik-baik saja), atau sebagai satu nilai berbeda untuk kebenaran dan sisanya sebagai falsey
- Ini dapat melalui salah satu metode input / output standar
Berikut adalah program pembantu yang dapat digunakan untuk menghasilkan semua variasi dari program yang dimasukkan.