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

जावास्क्रिप्ट में लंबवत रेखा खंडों के एक सेट में सभी असंबद्ध चौराहों को खोजें

<घंटा/>

हमारे पास y1 और y2 निर्देशांक द्वारा परिभाषित लंबवत क्षेत्रों का एक सेट है, जहां y1 प्रारंभिक बिंदु है और y2 प्रत्येक क्षेत्र का अंतिम बिंदु है।

हमारे निर्देशांक प्रणाली का मूल शीर्ष-बाएं कोने में है, इसलिए y2 हमेशा y1 से बड़ा होता है।

यह एक उदाहरण है -

const regions = [
   [10, 100],
   [50, 120],
   [60, 180],
   [140, 220]
];

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पहले तर्क के रूप में एक ऐसी क्षेत्र सरणी और दूसरे तर्क के रूप में एक संख्या लेता है।

हम एक निश्चित आकार से बड़े सभी असंबद्ध चौराहों का पता लगाना चाहते हैं, (फ़ंक्शन के दूसरे तर्क द्वारा निर्दिष्ट)।

मान लीजिए, उदाहरण के लिए, 20 इकाइयाँ।

फिर उपरोक्त सरणी के लिए आउटपुट जैसा दिखना चाहिए -

const output = [
   [60, 100],
   [140, 180]
];

हम एक सरल एल्गोरिथम का उपयोग कर सकते हैं और ओवरलैपिंग आइटम की खोज के लिए पूरे उत्पाद में उपयोग कर सकते हैं।

फिर सामान्य भागों को पुनरावृत्त करके प्राप्त करें और केवल अज्ञात मिलानों को फ़िल्टर करें।

उदाहरण

इसके लिए कोड होगा -

const regions = [
   [10, 100],
   [50, 120],
   [60, 180],
   [140, 220]
];
const getIntersections = (arr,num) => {
   let disjoint, res;
   return arr.reduce((acc,val,ind,array) => {
      if (val.used){
         return acc;
      };
      res = array.map((el, index) => array[(ind + index) % array.length]) .reduce((s,e) => {
         disjoint = [Math.max(s[0],e[0]), Math.min(s[1],e[1])];
         return disjoint[0] < disjoint[1] ? (e.used = true, disjoint) : s;
      });
      res[1] - res[0] > num && acc.push(res);
      return acc;
   },[]);
}
console.log(getIntersections(regions, 20));

आउटपुट

और कंसोल में आउटपुट होगा -

[ [ 60, 100 ], [ 140, 180 ] ]

  1. जावास्क्रिप्ट में सरणी बनाम सेट।

    सेट डेटा प्रकार को ES2015 में पेश किया गया था और सरणी और सेट के बीच का अंतर यह है कि एक सरणी में डुप्लिकेट मान हो सकते हैं, जबकि एक सेट नहीं कर सकता। तत्वों को इंडेक्स का उपयोग करके सरणी में एक्सेस किया जा सकता है जो सेट में संभव नहीं है क्योंकि यह कुंजियों का उपयोग करता है और तत्वों को केवल उसी तरह

  1. C++ में दिए गए समुच्चय के सभी भिन्न उपसमुच्चय ज्ञात कीजिए

    यहां हम देखेंगे कि किसी दिए गए सेट के सभी अलग-अलग सबसेट को कैसे प्रदर्शित किया जाए। अतः यदि समुच्चय {1, 2, 3} है, तो उपसमुच्चय {}, {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3} होंगे। , {1, 2, 3}। सभी उपसमुच्चयों के समुच्चय को घात समुच्चय कहते हैं। पावर सेट में 2n तत्व होते हैं। हम 0 से 2n (छोड़कर) के माध्

  1. क्षैतिज और ऊर्ध्वाधर रेखा खंडों के बीच त्रिभुजों की संख्या ज्ञात करने के लिए C++ प्रोग्राम

    इस लेख में, हम दिए गए क्षैतिज और ऊर्ध्वाधर रेखा खंडों के प्रतिच्छेदन बिंदुओं को मिलाकर बनने वाले त्रिभुजों की संख्या ज्ञात करने के लिए एक कार्यक्रम पर चर्चा करेंगे। उदाहरण के लिए, मान लीजिए कि हमें निम्नलिखित रेखाखंड दिए गए हैं। इसमें हमारे पास 3 चौराहे बिंदु हैं। तो इन बिंदुओं का उपयोग करके जितने