সোমবার সকালে একটি চ্যালেঞ্জ এখানে ...
সর্বনিম্ন সংখ্যা বাইটে একটি ফাংশন বা প্রোগ্রাম লিখুন যা:
[x,y]
স্থানাঙ্কের একটি তালিকা ইনপুট হিসাবে নেয়[x,y]
সমন্বয়কারীদের সংশ্লিষ্ট জনগণের একটি তালিকা ইনপুট হিসাবে নেয় T- আকারে গণনার গণনা কেন্দ্রকে আউটপুট করে
[xBar,yBar]
।
বিঃদ্রঃ:
- ইনপুট যেকোন আকারে নেওয়া যেতে পারে, যতক্ষণ না কোনও অ্যারে ব্যবহার করা হয়।
ভর কেন্দ্রটি নিম্নলিখিত সূত্র দ্বারা গণনা করা যেতে পারে:
সরল ইংরাজীতে ...
- জন্য
xBar
, সংখ্যাবৃদ্ধি দ্বারা তার নিজ নিজ এক্স প্রতিটি ভর তুল্য, ফলে তালিকা যোগফল, এবং সমস্ত জনসাধারণ এর সমষ্টি এটি দ্বারা বিভক্ত। - জন্য
yBar
, গুন করা তার নিজ নিজ Y দ্বারা প্রতিটি ভর তুল্য, ফলে তালিকা যোগফল, এবং সমস্ত জনসাধারণ এর সমষ্টি এটি দ্বারা বিভক্ত।
তুচ্ছ পাইথন ২.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)]
, যেমন : তালিকার তালিকা? বা তর্কগুলি টিপলস, তালিকা বা অ্যারে কিনা তা বিবেচনা করে না? তিনটি তালিকা / অ্যারে সম্পর্কে কি?