Marcog के समाधान का उपयोग करके मुझे एक पैटर्न मिला जो शुरू होता है n=16। यहाँ इस उदाहरण देकर स्पष्ट करने के लिए कीस्ट्रोक्स हैं n=24अप करने के लिए n=29, मैं प्रतिस्थापित ^ एस (चुनें) के साथ एक, ^ पठनीयता के लिए पी (पेस्ट) के साथ सी (कॉपी), और साथ सी ^ वी:
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
प्रारंभिक 4 आस के बाद, आदर्श पैटर्न का चयन करना, कॉपी करना, चिपकाना, चिपकाना और दोहराना है। यह प्रत्येक 5 कीस्ट्रोक्स के रूप में अस की संख्या को 4 से गुणा करेगा। यदि यह 5 कीस्ट्रोक पैटर्न 4 कीस्ट्रोके पैटर्न (SCPP) की कुछ संख्याओं पर शेष कीस्ट्रोक्स का उपभोग नहीं कर सकता है, तो SCPPP की जगह (या पास्ट में से एक को हटाकर) अंतिम कीस्ट्रोक्स का उपभोग करता है। 4 कीस्ट्रोके पैटर्न 3 हर 4 कीस्ट्रोक्स द्वारा कुल गुणा करते हैं।
इस पैटर्न का उपयोग करते हुए कुछ पायथन कोड है, जो marcog के समाधान के समान परिणाम प्राप्त करता है, लेकिन O (1) संपादित होता है : यह वास्तव में O (लॉग एन) है क्योंकि घातांक के कारण आईवीडीएल को धन्यवाद दिया गया है।
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)
ई 3 की गणना:
कीस्ट्रोक सूची के अंत में हमेशा 0 और 4 एससीपीपी पैटर्न के बीच n % 5 == 4होते हैं, 4 के लिए, n % 5 == 13 n % 5 == 2होते हैं, 2 n % 5 == 3होते हैं, 1 होते हैं, और n % 5 == 40. होते हैं। इसे सरल बनाया जा सकता है (4 - n) % 5।
ई 4 की गणना:
जब भी n % 5 == 0यह संख्या निकलती है तो पैटर्न की कुल संख्या 1 से बढ़ जाती है n / 5। फर्श विभाजन का उपयोग करके हम कुल पैटर्न प्राप्त कर सकते हैं, कुल संख्या पैटर्न पैटर्न की कुल संख्या e4है e3। पायथन से अपरिचित लोगों के //लिए, फर्श विभाजन के लिए भविष्य के सबूत संकेतन है।
^Aमें आमतौर पर "सभी का चयन करें",^C"कॉपी" है,^V"पेस्ट" है। क्या यह आपको एक विचार देता है?