2015-04-18 11 views
7

पर आधारित पत्र निर्धारित करें, इसलिए मैं बहुत परेशान हूं, मैं जावा में काफी अच्छी तरह से जानी जाने वाली चीज़ों को कुछ समझ नहीं पा रहा हूं, लेकिन फिर भी पाइथन के परिचय के लिए मेरे प्रोफेसर ने हमें एक प्रयोगशाला सौंपी जहां हमें पंक्ति और कॉलम स्थिति के आधार पर अक्षरों के साथ एक पैटर्न बनाना है। कोई लूप या पुनरावृत्ति, बस सशर्त बयान।पंक्ति और कॉल - पायथन

उदाहरण के लिए, इस समारोह:

def letter(row, col): 
    if row>col: 
     return 'T' 
    else: 
     return 'W' 

प्राप्त होते हैं:

WWWWWWWWWWWWWWWWWWWW 
TWWWWWWWWWWWWWWWWWWW 
TTWWWWWWWWWWWWWWWWWW 
TTTWWWWWWWWWWWWWWWWW 
TTTTWWWWWWWWWWWWWWWW 
TTTTTWWWWWWWWWWWWWWW 
TTTTTTWWWWWWWWWWWWWW 
TTTTTTTWWWWWWWWWWWWW 
TTTTTTTTWWWWWWWWWWWW 
TTTTTTTTTWWWWWWWWWWW 
TTTTTTTTTTWWWWWWWWWW 
TTTTTTTTTTTWWWWWWWWW 
TTTTTTTTTTTTWWWWWWWW 
TTTTTTTTTTTTTWWWWWWW 
TTTTTTTTTTTTTTWWWWWW 
TTTTTTTTTTTTTTTWWWWW 
TTTTTTTTTTTTTTTTWWWW 
TTTTTTTTTTTTTTTTTWWW 
TTTTTTTTTTTTTTTTTTWW 
TTTTTTTTTTTTTTTTTTTW 

यदि पंक्ति और स्तंभ दोनों 20.

एक मैं कर रहा हूँ के बराबर के साथ अपने ड्राइवर फ़ाइल के माध्यम से चलाने पैटर्न के लिए एक समारोह बना रहा है:

XOOOOOX 
OXOOOXO 
OOXOXOO 
OOOXOOO 
OOXOXOO 
OXOOOXO 
XOOOOOX 

कृपया मुझे जवाब चम्मच न करें, बल्कि मुझे सही दिशा में इंगित करें।

अब तक मुझे पता है कि बाईं के लिए एक्स-> सही विकर्ण की पहचान की जा सकती है जब पंक्ति == col। यह सही है-> बाएं विकर्ण मुझे समस्याएं हैं।

बहुत बहुत धन्यवाद।

+0

क्या आप स्पष्टीकरण दे सकते हैं कि दिया गया फ़ंक्शन दिए गए आउटपुट को कैसे उत्पन्न करता है - यानी, "ड्राइवर फ़ाइल" क्या है और यह "इसे" कैसे चलाता है? – TigerhawkT3

+1

शीर्ष-दाएं -> नीचे-बाएं विकर्ण करने के लिए, आपको चौड़ाई (या ऊंचाई, क्योंकि यह वर्ग है) को जानना होगा। आपके उदाहरण में, यह 7 है। यह शुरू करने के लिए पर्याप्त हो सकता है। – jedwards

+0

ओह, और क्या आपका प्रोफेसर लूप के समान श्रेणी में रिकर्सन पर विचार करता है? : पी – TigerhawkT3

उत्तर

6

प्रत्येक X की स्थिति की पंक्ति और कॉलम के बीच संबंधों को देखें। फिर, इस समस्या को दो में विभाजित करें: इसका एक पहलू यह रेखा है जो ऊपर-बाएं से नीचे-दाएं तक जाती है, और दूसरा पहलू वह रेखा है जो नीचे-बाएं से ऊपर तक जाती है।

के ऊपरी बाएं भाग निचले-दाएं कोने X रों पर नजर डालते हैं:

row: column: 
1 1 
2 2 
3 3 
4 4 
5 5 
6 6 
7 7 

मुझे लगता है कि उसके आधार पर पंक्ति और स्तंभ के बीच एक रिश्ता तय कर सकते हैं।

अब कैसे दूसरी लाइन, से के बारे में शीर्ष सही करने के लिए नीचे बाईं ओर:

row: column: 
1 7 
2 6 
3 5 
4 4 
5 3 
6 2 
7 1 

आपका कोमल संकेत यहाँ "+" है।

तो, अगर एक तत्व की पंक्ति और स्तंभ पहले निर्दिष्ट संबंध or दूसरा है, तो आप एक X वहाँ डाल दिया।

मुझे आशा है कि यह उचित सहायता होगी।

+1

महान स्पष्टीकरण। लेकिन मुझे संदेह है कि 'पंक्ति' और 'col' 0-आधारित हैं, 1-आधारित नहीं। (हालांकि ओपी यह सोचकर कुछ सीख सकता है कि क्या उसके कोड गलत तरीके से अनुमान लगाएंगे, और फिर इसे सत्यापित करने के लिए इसे चला रहे हैं ...) – abarnert

+0

अरे, बहुत बहुत धन्यवाद! यह एक अच्छा जवाब था, और मैं सौम्य संकेत की सराहना करता हूं, हाहा! –

+0

मुझे लगता है कि इस मामले में स्पष्टीकरण इंडेक्स-अज्ञेयवादी है - यह 'n',' n + 1' आदि हो सकता था। इसके अलावा, मैंने इस एल्गोरिदम का उपयोग करके एक फ़ंक्शन का परीक्षण किया, जिसे आपने उस ड्राइवर के माध्यम से चलाया टिप्पणी, और यह उम्मीद के रूप में व्यवहार किया। :) – TigerhawkT3

संबंधित मुद्दे