यहां सोमवार सुबह की चुनौती है ...
कम से कम बाइट्स में एक फ़ंक्शन या प्रोग्राम लिखें:
- इनपुट के रूप में
[x,y]
निर्देशांक की एक सूची लेता है [x,y]
निर्देशांक के संबंधित जनसमूह की सूची को इनपुट के रूप में लेता है- के रूप में द्रव्यमान की गणना केंद्र आउटपुट करता है
[xBar,yBar]
।
ध्यान दें:
- इनपुट को किसी भी रूप में लिया जा सकता है, जब तक कि एक सरणी का उपयोग किया जाता है।
द्रव्यमान के केंद्र की गणना निम्न सूत्र द्वारा की जा सकती है:
सादा अंग्रेजी में...
- खोजने के लिए
xBar
, प्रत्येक द्रव्यमान को उसके संबंधित x द्वारा गुणा करें, परिणामी सूची को योग करें, और इसे सभी द्रव्यमानों के योग से विभाजित करें। - खोजने के लिए
yBar
, प्रत्येक द्रव्यमान को उसके संबंधित y द्वारा गुणा करें, परिणामी सूची को योग करें, और इसे सभी द्रव्यमानों के योग से विभाजित करें।
तुच्छ अजगर 2.7 उदाहरण:
def center(coord, mass):
sumMass = float(reduce(lambda a, b: a+b, mass))
momentX = reduce(lambda m, x: m+x, (a*b for a, b in zip(mass, zip(*coord)[0])))
momentY = reduce(lambda m, y: m+y, (a*b for a, b in zip(mass, zip(*coord)[1])))
xBar = momentX / sumMass
yBar = momentY / sumMass
return [xBar, yBar]
परीक्षण के मामलों:
> center([[0, 2], [3, 4], [0, 1], [1, 1]], [2, 6, 2, 10])
[1.4, 2.0]
> center([[3, 1], [0, 0], [1, 4]], [2, 4, 1])
[1.0, 0.8571428571428571]
यह कोड-गोल्फ है, इसलिए सबसे कम संख्या में बाइट्स जीतती हैं!
[x,y,m],[x,y,m]...
:?
[(x1,y1,m1), (x2,y2,m2)]
, जैसे tuples की एक सूची? या इससे कोई फर्क नहीं पड़ता कि क्या तर्क तुक, सूची या सरणियाँ हैं? तीन सूचियों / सरणियों के बारे में क्या?