Teka-teki asli "Mata Biru" diberikan di sini (dan di bawah).
Sekelompok orang dengan berbagai macam warna mata hidup di sebuah pulau. Mereka semua adalah ahli logika yang sempurna - jika suatu kesimpulan dapat disimpulkan secara logis, mereka akan langsung melakukannya. Tidak ada yang tahu warna mata mereka. Setiap malam tengah malam, sebuah feri berhenti di pulau itu. Penduduk pulau yang mengetahui warna mata mereka sendiri kemudian meninggalkan pulau, dan sisanya tinggal. Setiap orang dapat melihat orang lain setiap saat dan menghitung jumlah orang yang mereka lihat dengan masing-masing warna mata (tidak termasuk diri mereka sendiri), tetapi mereka tidak dapat berkomunikasi. Semua orang di pulau itu tahu semua aturan dalam paragraf ini.
Di pulau ini ada 100 orang bermata biru, 100 orang bermata coklat, dan sang Guru (dia kebetulan memiliki mata hijau). Jadi setiap orang yang bermata biru dapat melihat 100 orang dengan mata cokelat dan 99 orang dengan mata biru (dan satu dengan hijau), tetapi itu tidak memberi tahu dia warna matanya sendiri; sejauh yang dia tahu totalnya bisa 101 cokelat dan 99 biru. Atau 100 coklat, 99 biru, dan dia bisa memiliki mata merah.
Guru diizinkan berbicara satu kali (misalkan pada siang hari), pada suatu hari di tahun-tahun tanpa akhir mereka di pulau itu. Berdiri di depan penduduk pulau, ia mengatakan yang berikut:
"Aku bisa melihat seseorang yang memiliki mata biru."
Siapa yang meninggalkan pulau itu, dan pada malam apa?
The Jawabannya adalah bahwa mereka semua meninggalkan pada hari keseratus. Ini disebabkan oleh logika berikut:
Jika hanya ada satu orang bermata biru saja, ia akan pergi pada hari pertama. Jika hanya ada orang bermata dua saja, tidak ada yang pergi pada hari pertama. Setelah ini, mereka berdua pergi pada hari kedua. Sekarang jika ada 3 orang biru orang-orang, tidak ada yang pergi pada hari ke-1. Sekarang semua orang tahu bahwa ada 3 orang bermata biru, karena jika hanya ada satu, dia akan pergi pada hari 1 dan jika ada dua, mereka berdua akan pergi pada hari 2. Oleh karena itu semua 3 pergi pada hari 3.
Kita sekarang dapat menulis bukti induktif bahwa jika n orang bermata biru membutuhkan n hari untuk mengetahui warna mata mereka dan pergi, maka n +1 orang bermata biru membutuhkan n +1 hari untuk melakukan hal yang sama.
Namun, kode yang Anda tulis harus mampu memecahkan tidak hanya teka-teki asli, tetapi juga beberapa varian yang memerlukan langkah induktif yang sedikit berbeda.
Anda akan diberi tahu berapa banyak penduduk pulau yang memiliki mata biru dan berapa banyak yang tidak. Anda juga akan diberikan pernyataan oleh oracle (sistem persamaan / ketidaksetaraan) yang didengar semua orang di pulau itu. Anda perlu menentukan kapan pulau itu akan bebas dari orang-orang bermata biru.
Pernyataan oracle akan digunakan b
untuk jumlah orang bermata biru dan r
untuk jumlah orang yang tidak bermata biru. Persamaan dapat mencakup < > <= >= = + -
dan semua bilangan bulat.
Uji kasus
Berdasarkan ini set varian
50 50
b>=1
b<b+r
Keluaran: 50
Persamaan kedua tidak memberikan informasi baru, maka masalah ini menjadi persis sama dengan teka-teki asli.
100 50
b+3>=r+4
Keluaran: 25
100 0
b-2>8+1-1
Keluaran: 90
50 50
b>=10
b<=75
Keluaran: 41
3b<2r
?
b+b+b < r+r
gantinya.
b>10
, bukan b>=10
, jadi hasilnya seharusnya 90
, bukan 91
.