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

Python में वेक्टर A को घुमाकर और वेक्टर C जोड़कर वेक्टर B तक पहुंचने की संभावना की जांच कैसे करें?

मान लीजिए हमारे पास 2D प्लेन में तीन वेक्टर x, y और z हैं। हमें यह जांचना है कि क्या हम वेक्टर x को 90 डिग्री (घड़ी की दिशा में) घुमाकर या आवश्यकतानुसार कई बार z को जोड़कर वेक्टर y प्राप्त कर सकते हैं।

तो, यदि इनपुट x = (-4, -2), y = (-1, 2), z = (-2, -1) है, तो आउटपुट True होगा क्योंकि हम x में z जोड़कर स्थान (-2, -1) प्राप्त कर सकते हैं, फिर 90° घड़ी की दिशा में घुमाकर (-1, 2) प्राप्त कर सकते हैं।

Python में वेक्टर A को घुमाकर और वेक्टर C जोड़कर वेक्टर B तक पहुंचने की संभावना की जांच कैसे करें?

हल करने के चरण

util() फ़ंक्शन परिभाषित करें। यह p, q, r, s लेगा

  • d := r * r + s * s
  • यदि d, 0 के समान है, तो:
    • true लौटाएं जब p और q दोनों 0 हों, अन्यथा false
  • true लौटाएं जब (p * r + q * s) और (q * r - p * s) दोनों d से विभाज्य हों, अन्यथा false
  • मुख्य विधि से निम्नलिखित करें:
    • यदि util(x of p - x of q, y of p - y of q, x of r, y of r) या util(x of p + x of q, y of p + q[1], x of r, y of r) या util(x of p - y of q, y of p + x of q, x of r, y of r) या util(x of p + y of q, y of p - x of q, x of r, y of r) में से कोई भी true है, तो:
      • True लौटाएं
    • False लौटाएं

उदाहरण

def util(p, q, r, s):
    d = r * r + s * s
    if d == 0:
        return p == 0 and q == 0
    return (p * r + q * s) % d == 0 and (q * r - p * s) % d == 0

def solve(p,q,r):
    if util(p[0] - q[0], p[1] - q[1], r[0], r[1]) or util(p[0] + q[0], p[1] + q[1], r[0], r[1]) or util(p[0] - q[1], p[1] + q[0], r[0], r[1]) or util(p[0] + q[1], p[1] - q[0], r[0], r[1]):
        return True
    return False

p = (-4, -2)
q = (-1, 2)
r = (-2, -1)
print(solve(p, q, r))

इनपुट

(-4, -2), (-1, 2), (-2, -1)

आउटपुट

True
  1. - पायथन में 3 और 7 (रैखिक संयोजन)

    समस्या विवरण एक धनात्मक संख्या n दी गई है, जांचें कि क्या इसे 3 के गैर-ऋणात्मक गुणक और 7 के गैर-ऋणात्मक गुणक के योग के रूप में व्यक्त किया जा सकता है। उदाहरण इनपुट: 13 आउटपुट: True (क्योंकि 13 = 1×7 + 2×3) एल्गोरिदम i = 0 से n तक स्टेप 7 में: यदि (n - i) % 3 == 0: True False पायथन कार्

  1. - Python में isprintable() और इसके अनुप्रयोग

    इस लेख में, हम Python में isprintable() और इसके अनुप्रयोग के बारे में सीखेंगे।isprintable() स्ट्रिंग हैंडलिंग के उद्देश्य के लिए उपयोग की जाने वाली एक बिल्ट-इन मेथड है। isprintable() मेथड True लौटाता है जब स्ट्रिंग में मौजूद सभी कैरेक्टर प्रिंटेबल प्रकार के हों या स्ट्रिंग खाली हो, अन्यथा यह False क

  1. - Python में divmod() और इसके अनुप्रयोग

    divmod() Python के स्टैंडर्ड लाइब्रेरी का हिस्सा है जो पैरामीटर के रूप में दो संख्याएं लेता है और उनके विभाजन के भागफल और शेष को टुपल के रूप में देता है। यह संख्याओं की विभाज्यता जांचने और यह स्थापित करने में उपयोगी है कि कोई संख्या अभाज्य है या नहीं।सिंटैक्सSyntax: divmod(a, b) a और b : b, a को विभ