Bilangan bulat non-negatif bosan selalu memiliki dua tetangga yang sama, sehingga mereka memutuskan untuk mencampuradukkan sedikit. Namun, mereka juga malas dan ingin tetap sedekat mungkin dengan posisi semula.
Mereka datang dengan algoritma berikut:
- Elemen pertama adalah 0.
- The unsur adalah jumlah terkecil yang belum hadir dalam urutan dan yang bukan merupakan tetangga dari elemen.
Ini menghasilkan urutan tak terbatas berikut:
0,2,4,1,3,5,7,9,6,8,10,12,14,11,13,15,17,19,16,18,20,22,24,21,23,25,27,29,26,28 ...
0
adalah elemen pertama. 1
adalah angka terkecil yang belum berurutan, tetapi merupakan tetangga 0
. Angka terkecil berikutnya adalah 2
, jadi itu adalah elemen kedua dari urutan. Sekarang angka yang tersisa 1,3,4,5,6,...
, tetapi karena keduanya 1
dan 3
tetangga 2
,4
adalah anggota ketiga dari urutan. Karena 1
bukan tetangga4
, ia akhirnya bisa menggantikannya sebagai elemen keempat.
Tugas
Tulis fungsi atau program sesedikit mungkin byte yang menghasilkan urutan di atas.
Kamu boleh
- output urutan yang tak terbatas,
- ambil input dan kembalikan unsur urutan, atau
- mengambil input dan mengembalikan elemen pertama dari urutan.
Indeks nol atau satu indeks baik-baik saja jika Anda memilih salah satu dari dua opsi terakhir.
Anda tidak perlu mengikuti algoritma yang diberikan di atas, metode apa pun yang menghasilkan urutan yang sama baik-baik saja.
Terinspirasi oleh golf Code permutasi terbaik . Ternyata ini adalah A277618 .
* Zero secara harfiah hanya memiliki satu tetangga dan tidak terlalu peduli.