यह एक कोड-गोल्फ प्रश्न है।
पूर्णांक s और n को देखते हुए कार्य लंबाई n के सभी सरणियों को आउटपुट करना है जो मानों को s से s में ले जाता है। एकमात्र ट्विस्ट यह है कि आपको उन्हें निम्न क्रम में आउटपुट करना होगा।
- लंबाई के सभी शून्य सरणी n।
- आपके द्वारा पहले आउटपुट किए गए किसी भी सरणी को छोड़कर, -1 से 1 तक के तत्वों के साथ लंबाई के सभी सरणियाँ।
- लंबाई के सभी सरणियों -2 से तत्वों के साथ 2 से पहले किसी भी सरणी को छोड़कर।
- और इसलिए जब तक कि आप पहले से आउटपुट किए गए किसी भी सरणी को छोड़कर, एस से तत्वों के साथ लंबाई एन के सभी सरणियों तक पहुंचते हैं।
आपको प्रति पंक्ति एक सरणी आउटपुट करना चाहिए। वे अंतरिक्ष या अल्पविराम से अलग हो सकते हैं।
यहाँ कुछ गैर-अनुपालन योग्य अजगर कोड है जो सही क्रम में सरणियों / सूचियों / ट्यूपल्स को आउटपुट करता है।
import itertools
s = 3
n = 2
oldsofar = set()
newsofar = set()
for i in xrange(s):
for k in itertools.product(range(-i,i+1), repeat = n):
newsofar.add(k)
print newsofar - oldsofar
oldsofar = newsofar.copy()
print "***"
कोई सेट घटाव या समकक्ष प्रदर्शन करने वाले उत्तरों के लिए अतिरिक्त महिमा (और मुझ से एक अपवोट)।