समझाना मुश्किल है, अग्रिम में क्षमा करें। मैं 99 विभिन्न चर के बीच दूरियों को जोड़ने की कोशिश कर रहा हूँ। मैं उन सभी को हैशपैप में डाल रहा हूं। मैं सोच रहा था कि ऐसा करने का सबसे अच्छा तरीका (1, 2, दूरी), और फिर (1,3, दूरी) और सभी तरह से होगा जब तक कि मैं उन सभी 99 के बीच की दूरी को मैप नहीं कर लेता। तो एक चर को 98 तक जाना है और दूसरे को 99 तक जाना है, और फिर 98 तक, आदि। मुझे नहीं पता कि यह कैसे करना है। मैंने लूप के लिए नेस्टेड करने की कोशिश की लेकिन यह काम नहीं कर रहा है।

    for (int i=0; i<99; i++)
{
    for (int j=99; j>0; i--)
    {
        graphWeighted.addEdge(nodelist.get(i), nodelist.get(j), distances.get(i));
    }
}
0
Josh Kenna 1 मई 2020, 08:19

2 जवाब

सबसे बढ़िया उत्तर

मुझे लगता है कि आप चाहते हैं:

for (int i=0; i < 99; i++) {
    for (int j=i+1; j < 100; j++) {
        graphWeighted.addEdge(nodelist.get(i), nodelist.get(j), distances.get(i));
    }
}

उपरोक्त डबल-नेस्टेड लूप सहित जोड़े उत्पन्न करेगा:

(0, 1)
(0, 2)
...
(0, 99)
(1, 2)
(1, 3)
...
(1, 99)
...
(98, 99)
2
Tim Biegeleisen 1 मई 2020, 08:25

यदि आपको दो सदिश तत्वों के बीच की दूरी ज्ञात करने की आवश्यकता है तो आपको किसी एक दूरी एल्गोरिथम Manhatten या Euclidean का उपयोग करने की आवश्यकता है। ऐसी कार्रवाइयाँ करने के लिए आपको बाहरी तृतीय-पक्ष लाइब्रेरी का उपयोग करना पड़ सकता है।

अपाचे कॉमन्स लाइब्रेरी में एक पैकेज org.apache.commons.math3.ml.distance और वैक्टर पर L1 और L2 मानदंडों को पूरा करने के लिए कक्षाएं शामिल हैं।

कृपया दस्तावेज़ देखें यहां

0
Krish.Venkat 1 मई 2020, 09:25