"Fit Numaraları"
Sam'in sıkıştırma için "mükemmel" bir fikri var! Yardım edebilir misin?
İşte Sam'in sıkıştırma planının bir özeti. İlk önce kesinlikle 2 ^ 16'dan küçük herhangi bir doğal sayının 10 temsilini yapın ve herhangi bir baştaki sıfır olmadan bir ikili dize olarak yazın.
1 -> 1 9 -> 1001 15 -> 1111 13 -> 1101 16 -> 10000 17 -> 10001 65535 -> 111111111111111
Şimdi bir veya daha fazla sıfırdan oluşan herhangi bir grubu tek bir sıfırla değiştirin. Bunun sebebi sayının azalmasıdır. İkili dizginiz şimdi böyle görünecek.
1 -> 1 -> 1 9 -> 1001 -> 101 15 -> 1111 -> 1111 13 -> 1101 -> 1101 16 -> 10000 -> 10 17 -> 10001 -> 101 65535 -> 111111111111111 -> 111111111111111
Şimdi ikili dizgiyi tekrar 10 taban göstergesine dönüştürüyorsunuz ve kabul edilebilir herhangi bir biçimde çıkarıyorsunuz. İşte test durumların. İlk tamsayı bir girişi temsil eder ve son tamsayı bir çıkışı temsil eder. Bazı numaraların değişmediğini ve bu nedenle "uygun" olarak adlandırılabileceğini unutmayın.
1 -> 1 -> 1 -> 1 9 -> 1001 -> 101 -> 5 15 -> 1111 -> 1111 -> 15 13 -> 1101 -> 1101 -> 13 16 -> 10000 -> 10 -> 2 17 -> 10001 -> 101 -> 5 65535 -> 1111111111111111 -> 1111111111111111 -> 65535 65000 -> 1111110111101000 -> 11111101111010 -> 16250
Herhangi bir dili kullanabilirsiniz, ancak Sam'in standart boşluklardan nefret ettiğini lütfen unutmayın. Bu kod golf olduğundan kod "sıkıştırılmış" sayılara yer açmak için mümkün olduğunca kısa olabilir.
Not: Bu kabul edilebilir bir sıkıştırma şeması DEĞİLDİR. Bunu kullanmak derhal kovulmanıza neden olur.
Atıf Yapılması Gereken: Bu konsept için kredi almıyorum. Bu @Conor O' Brien blog gelen gelir buraya uyum sayıların bu OEIS bakın. https://oeis.org/A090078
10000
mı?