पृष्ठभूमि
हां, बिटस्ट्रिंग भौतिकी एक वास्तविक चीज है । यह विचार भौतिकी के एक नए सिद्धांत का निर्माण करने के लिए है, केवल एक बिट के तार का उपयोग करके जो एक संभाव्य नियम के तहत विकसित होता है ... या कुछ और। इसके बारे में कुछ कागजात पढ़ने के बावजूद, मैं अभी भी बहुत उलझन में हूँ। हालांकि, बिटस्ट्रिंग ब्रह्मांड एक अच्छा सा कोड गोल्फ बनाता है।
प्रोग्राम यूनिवर्स
बिटस्ट्रिंग भौतिकी एक तथाकथित कार्यक्रम ब्रह्मांड में होती है । ब्रह्मांड के विकास के प्रत्येक चरण में, Lकुछ लंबाई के बिटस्ट्रिंग्स की एक सीमित सूची है k, [10,11]जहां दो-तत्व सूची के साथ शुरू होता है k = 2। एक टाइमस्टेप को निम्नानुसार संसाधित किया जाता है (पायथन-जैसे स्यूडोकोड में)।
A := random element of L
B := random element of L
if A == B:
for each C in L:
append a random bit to C
else:
append the bitwise XOR of A and B to L
सभी यादृच्छिक विकल्प समान रूप से यादृच्छिक और एक दूसरे से स्वतंत्र होते हैं।
उदाहरण
4 चरणों का एक उदाहरण विकास निम्नलिखित की तरह लग सकता है। प्रारंभिक सूची से शुरू करें L:
10
11
हम यादृच्छिक रूप से चुनते हैं A := 10और B := 10, जो एक ही पंक्ति हैं, जिसका अर्थ है कि हमें प्रत्येक स्ट्रिंग को Lयादृच्छिक बिट के साथ विस्तारित करने की आवश्यकता है :
101
110
अगला, हम चुनते हैं A := 101और B := 110, क्योंकि वे समान नहीं हैं, हम उनके XOR को इसमें जोड़ते हैं L:
101
110
011
फिर, हम चुनें A := 011और B := 110, और फिर से उनके XOR संलग्न:
101
110
011
101
अंत में, हम चुनते हैं A := 101(अंतिम पंक्ति) और B := 101(पहली पंक्ति), जो बराबर हैं, इसलिए हम यादृच्छिक बिट्स के साथ विस्तार करते हैं:
1010
1100
0111
1010
काम
आपका काम tइनपुट के रूप में एक नॉनवेजेटिव पूर्णांक लेना है , tटाइमस्टेप्स के लिए प्रोग्राम ब्रह्मांड का अनुकरण करें , और परिणामी सूची को वापस करें या प्रिंट करें L। ध्यान दें कि t = 0प्रारंभिक सूची में परिणाम [10,11]। आप Lपूर्णांकों की सूची, बूलियन मूल्यों की सूची या तार की सूची के रूप में आउटपुट कर सकते हैं; यदि आउटपुट STDOUT में जाता है, तो आप कुछ उचित प्रारूप में बिटस्ट्रिंग्स को प्रति पंक्ति एक प्रिंट कर सकते हैं। बिटस्ट्रिंग्स का क्रम महत्वपूर्ण है; विशेष रूप से, प्रारंभिक सूची नहीं किया जा सकता [11,10], [01,11]या ऐसा कुछ। दोनों फ़ंक्शन और पूर्ण कार्यक्रम स्वीकार्य हैं, मानक खामियों को अस्वीकार कर दिया जाता है, और सबसे कम बाइट गिनती जीतती है।