Son zamanlarda cevapsız kalan Diffy oyunları hakkında bir soru yayınladım . Sorun değil, soru gerçekten zor, ama topun yuvarlanabilmesi için Diffy oyunları hakkında daha kolay bir soru yapmak istiyorum.
Diffy nasıl çalışır?
Diffy Oyunları Bul kopyalandı
Diffy oyunu aşağıdaki gibi çalışır: Negatif olmayan tam sayıların bir listesiyle başlarsınız, bu örnekte kullanacağız
3 4 5 8
Sonra bitişik sayılar arasındaki mutlak farkı alırsın
(8) 3 4 5 8
5 1 1 3
O zaman tekrar et. Bir döngü girdiğinizi fark edinceye kadar tekrar edersiniz. Ve sonra genel olarak oyun yeniden en baştan başlar.
3 4 5 8
5 1 1 3
2 4 0 2
0 2 4 2
2 2 2 2
0 0 0 0
0 0 0 0
Oyunların çoğu, kaybedilen bir durum olarak kabul edilen tüm sıfırlardan oluşan bir diziyle sona erer, ancak nadir birkaç oyun daha büyük döngülere takılır.
Görev
Bir Diffy oyununun başlangıç durumu göz önüne alındığında, oyunun sonunda tüm sıfırların durumuna ulaşıp ulaşmadığını belirleyin. İki durumun her biri için bir Truthy veya Falsy değeri vermelisiniz. Hangisi önemli değil ki hangisidir?
Amaç, kaynağınızdaki bayt sayısını en aza indirmektir.
1 1 0
, periyodiktir, 42 42 41
böyle bir durum böyledir .
n
tuhafsa, tüm sayılar eşit olmadıkça oyun sıfıra gitmez. Uzunluk 2 değerinde bir güç ise, daima sıfıra gider.
n
Elemanlar ve maksimum olan bir liste m
çoğu n * bit_length(m)
aşamada gerçekleştirilir. Yani, n*m
aynı zamanda bir üst sınırdır. Daha güçlü bir üst sınır, faktörün en büyük 2 olduğu t(n) * bit_length(m)
yerdir . t(n)
n