पृष्ठभूमि
हां, बिटस्ट्रिंग भौतिकी एक वास्तविक चीज है । यह विचार भौतिकी के एक नए सिद्धांत का निर्माण करने के लिए है, केवल एक बिट के तार का उपयोग करके जो एक संभाव्य नियम के तहत विकसित होता है ... या कुछ और। इसके बारे में कुछ कागजात पढ़ने के बावजूद, मैं अभी भी बहुत उलझन में हूँ। हालांकि, बिटस्ट्रिंग ब्रह्मांड एक अच्छा सा कोड गोल्फ बनाता है।
प्रोग्राम यूनिवर्स
बिटस्ट्रिंग भौतिकी एक तथाकथित कार्यक्रम ब्रह्मांड में होती है । ब्रह्मांड के विकास के प्रत्येक चरण में, 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]
या ऐसा कुछ। दोनों फ़ंक्शन और पूर्ण कार्यक्रम स्वीकार्य हैं, मानक खामियों को अस्वीकार कर दिया जाता है, और सबसे कम बाइट गिनती जीतती है।