Marcog'un çözümünü kullanarak, ile başlayan bir model buldum n=16. Bunu açıklamak n=24için n=29, ^ A'yı S (seç) ile, ^ C'yi C (kopyala) ile ve ^ V'yi P (yapıştır) ile değiştirdim okunabilirlik için tuş vuruşları :
24: A,A,A,A,S,C,P,P,P,S,C,P,P,P,S,C,P,P,P,S,C,P,P,P
4 * 4 * 4 * 4 * 4 = 1024
25: A,A,A,A,S,C,P,P,P,S,C,P,P,S,C,P,P,S,C,P,P,S,C,P,P
4 * 4 * 3 * 3 * 3 * 3 = 1296
26: A,A,A,A,S,C,P,P,P,S,C,P,P,P,S,C,P,P,S,C,P,P,S,C,P,P
4 * 4 * 4 * 3 * 3 * 3 = 1728
27: A,A,A,A,S,C,P,P,P,S,C,P,P,P,S,C,P,P,P,S,C,P,P,S,C,P,P
4 * 4 * 4 * 4 * 3 * 3 = 2304
28: A,A,A,A,S,C,P,P,P,S,C,P,P,P,S,C,P,P,P,S,C,P,P,P,S,C,P,P
4 * 4 * 4 * 4 * 4 * 3 = 3072
29: A,A,A,A,S,C,P,P,P,S,C,P,P,P,S,C,P,P,P,S,C,P,P,P,S,C,P,P,P
4 * 4 * 4 * 4 * 4 * 4 = 4096
İlk 4 As'dan sonra ideal model seçmek, kopyalamak, yapıştırmak, yapıştırmak, yapıştırmak ve tekrar etmektir. Bu, As sayısını her 5 tuş vuruşunda bir 4 ile çarpacaktır. Bu 5 tuş vuruşu modeli, kalan tuş vuruşlarını kendi başına tüketemezse, bazı 4 tuş vuruşu kalıbı (SCPP), SCPPP'yi değiştirerek (veya yapıştırmalardan birini kaldırarak) son tuş vuruşlarını tüketir. 4 tuş vuruşu paterni, toplamı her 4 tuş vuruşunda 3 ile çarpar.
Bu kalıbı burada kullanmak, marcog'un çözümüyle aynı sonuçları alan, ancak O (1) düzenlemesi olan bazı Python kodudur : Bu aslında üs alma nedeniyle O (log n), bunu işaret ettiği için IVlad sayesinde.
def max_chars(n):
if n <= 15:
return (0, 1, 2, 3, 4, 5, 6, 9, 12, 16, 20, 27, 36, 48, 64, 81)[n]
e3 = (4 - n) % 5
e4 = n // 5 - e3
return 4 * (4 ** e4) * (3 ** e3)
E3'ün hesaplanması: Tuş vuruşu listesinin sonunda her zaman 0 ile 4 arasında SCPP örüntüsü n % 5 == 4vardır, n % 5 == 1çünkü 4 vardır, 3 n % 5 == 2vardır, 2 n % 5 == 3vardır, 1 n % 5 == 4vardır ve 0 vardır. Bu basitleştirilebilir (4 - n) % 5.
E4'ün hesaplanması:
Toplam desen sayısı 1 artar n % 5 == 0, çünkü bu sayı tam olarak artar n / 5. Kat bölmesini kullanarak toplam desen sayısını elde edebiliriz, toplam desen e4sayısı eksi toplam desen sayısıdır e3. Python'a aşina olmayanlar //için, zemin bölümü için geleceğe dönük notasyondur.
^Agenellikle "tümünü seç",^C"kopyala",^V"yapıştır" dır. Bu sana bir fikir veriyor mu?