Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

जांचें कि क्या किसी वर्ग (एक रंगीन सेल के साथ) को पायथन में दो बराबर भागों में विभाजित किया जा सकता है

मान लीजिए, हमें एक वर्ग दिया गया है जिसका आकार n है। n आकार के वर्ग को आगे n2 छोटे वर्गों में विभाजित किया गया है। छोटे वर्ग इकाई आकार के होते हैं और उनमें से एक वर्ग अद्वितीय रंग से रंगा जाता है।

अब अगर हम बड़े वर्ग को दो बराबर भागों में काटते हैं, तो हमें इसे इस तरह से काटना होगा कि काटने की रेखा में उस विशिष्ट रंग के छोटे वर्ग के साथ कोई बिंदु समान न हो। हमें इस तथ्य पर भी विचार करना होगा कि नए कटे हुए दो टुकड़े एक दूसरे के दर्पण चित्र हैं। इसलिए, हमें यह पता लगाना होगा कि क्या शर्तों को देखते हुए इस तरह का वर्ग काटना संभव है। हमारे पास n का मान है और बड़े वर्ग में रंगीन वर्ग की स्थिति है।

इसलिए, यदि इनपुट आकार =50, color_row_pos =25, coloured_col_pos =25 जैसा है, तो आउटपुट "काटना संभव नहीं है।"

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • मध्य :=आकार का न्यूनतम मान /2
  • अगर (बीच में कलर्ड_रो_पॉज़ जैसा है या बीच में कलर_रो_पोज़ -1 जैसा है) और (बीच में कलर_कोल_पोज़ जैसा है या बीच में कलर_कॉल_पोज़ -1 जैसा है), तो
    • झूठी वापसी
  • अन्यथा,
    • सही लौटें

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

def solve(size, colored_row_pos, colored_col_pos) :
   middle = size // 2
   if (middle == colored_row_pos or middle == colored_row_pos - 1) and (middle ==    colored_col_pos or middle == colored_col_pos - 1) :
      print("Cutting is not possible")
   else :
      print("Cutting is possible")
size = 50
colored_row_pos, colored_col_pos = 25, 25 
solve(size, colored_row_pos, colored_col_pos)

इनपुट

50, 25, 25

आउटपुट

Cutting is not possible

  1. जांचें कि क्या रानी पायथन में शतरंज की बिसात पर दिए गए सेल पर हमला कर सकती है

    मान लीजिए कि हमारे पास रानी और प्रतिद्वंद्वी के लिए शतरंज की बिसात पर दो निर्देशांक हैं। ये बिंदु क्रमशः Q और O हैं। हमें यह जांचना होगा कि रानी प्रतिद्वंद्वी पर हमला कर सकती है या नहीं। जैसा कि हम जानते हैं कि रानी एक ही पंक्ति, एक ही स्तंभ और तिरछे आक्रमण कर सकती है। इसलिए, यदि इनपुट Q =(1, 1) O

  1. उन योगों का पता लगाएं जिनके लिए एक सरणी को समान योग के उप-सरणी में पायथन में विभाजित किया जा सकता है

    मान लीजिए कि हमारे पास पूर्णांक ए की एक सरणी है; हमें योग के लिए सभी मानों को खोजना होगा ताकि एक मान के लिए योग [i] सरणी को योग योग [i] के उप-सरणी में विभाजित किया जा सके। यदि हम सरणी को समान योग के उप-सरणी में विभाजित नहीं कर सकते हैं तो -1 लौटाएं। इसलिए, यदि इनपुट ए =[2, 4, 2, 2, 2, 4, 2, 6] जैसा

  1. पायथन में समान योग के साथ तीन भागों में विभाजन सरणी

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी A है, तो हमारा आउटपुट सही होगा यदि और केवल तभी हम सरणी को तीन गैर-रिक्त भागों में विभाजित कर सकते हैं, जिनका योग बराबर है। औपचारिक रूप से, हम सरणी को विभाजित कर सकते हैं यदि हम इंडेक्स i+1