Giriş (yok sayılabilir)
Tüm pozitif sayıları düzenli sıraya koymak (1, 2, 3, ...) biraz sıkıcı, değil mi? Burada, tüm pozitif sayıların permütasyonları (yeniden karıştırmaları) etrafında bir dizi zorluk var. Bu serideki ikinci zorluk. İlk zorluk burada bulunabilir .
Bu meydan okumada, doğal sayıları yeniden düzenlemek için Gray kodlarını kullanıyoruz. Gri kod veya "yansıtılan ikili kod", birbirini izleyen iki değerin yalnızca bir bitte farklılık göstereceği şekilde bir ikili kodlamadır. Bu kodlamanın pratik bir uygulaması, onu döner kodlayıcılarda kullanmaktır , dolayısıyla "Dönüşümü" referansım .
Bu kodlamanın bir dereceye kadar özgürlük bıraktığını unutmayın. Örneğin, ikili 1100'ü izleyen dört olası kod vardır: 1101, 1110, 1000 ve 0100. Bu yüzden 'yi ikili kodlamada yalnızca bir karakterden farklı olan en küçük, daha önce kullanılmayan değer olarak tanımlayacağım . Bu dizi A163252'ye karşılık gelir .
Bu bir "saf dizisi" meydan okuma olduğu için, görev çıkışı için , belirli bir için as input, where is A163252.
Task
Given an integer input , output in integer format (not in binary format).
is defined as the least positive integer not occurring earlier in the sequence such that and differ in only one bit when written in binary.
Note: 1-based indexing is assumed here; you may use 0-based indexing, so , etc. Please mention this in your answer if you choose to use this.
Test cases
Input | Output
--------------
1 | 1
5 | 4
20 | 18
50 | 48
123 | 121
1234 | 1333
3000 | 3030
9999 | 9997
Rules
- Input and output are integers (your program should at least support input and output in the range of 1 up to 32767)
- Invalid input (0, floats, strings, negative values, etc.) may lead to unpredicted output, errors or (un)defined behaviour. In A163252, is defined as 0. For this challenge, we will ignore this.
- Default I/O rules apply.
- Default loopholes are forbidden.
- This is code-golf, so the shortest answers in bytes wins
Final note
See the following related (but not equal) PP&CG questions:
