নিউ ইয়র্ক টাইমসের এই গ্রাফিকের নকশায় আমি আগ্রহী ছিলাম, যেখানে প্রতিটি মার্কিন রাষ্ট্রের গ্রিডে একটি বর্গ দ্বারা প্রতিনিধিত্ব করা হয়। আমি অবাক হয়েছি যে তারা স্কোয়ারগুলি হাতে রেখেছিল বা প্রকৃত অর্থে রাজ্যের অবস্থানগুলি উপস্থাপনের জন্য স্কোয়ারগুলির সর্বোত্তম স্থান নির্ধারণ করেছে (কিছু সংজ্ঞার অধীনে)।
আপনার কোডটি রাজ্যগুলি (বা অন্যান্য স্বেচ্ছাচারী দ্বি-মাত্রিক আকারগুলি) উপস্থাপনের জন্য সর্বোত্তমভাবে স্কোয়ার স্থাপনের চ্যালেঞ্জের একটি ছোট্ট অংশ গ্রহণ করবে, বিশেষত, এটি ধরে নেওয়া যাচ্ছে যে ইতিমধ্যে আমাদের সমস্ত ভৌগলিক কেন্দ্র বা আকারের সেন্ট্রয়েড রয়েছে একটি সুবিধাজনক বিন্যাস, এবং এই জাতীয় চিত্রের উপাত্তগুলির সর্বোত্তম উপস্থাপনা হ'ল আকারগুলির সেন্ট্রয়েডগুলি থেকে স্কোয়ারগুলির কেন্দ্রগুলির মধ্যে যেগুলিগুলির প্রতিনিধিত্ব করে তার মোট দূরত্ব সর্বনিম্ন, প্রতিটিতে বেশিরভাগ এক বর্গ সহ সম্ভাব্য অবস্থান।
আপনার কোডটি কোনও সুবিধাজনক বিন্যাসে 0.0 থেকে 100.0 (অন্তর্ভুক্ত) পর্যন্ত ভাসমান-পয়েন্ট এক্স এবং ওয়াই সমন্বয়গুলির অনন্য জোড়াগুলির একটি তালিকা নেবে এবং উপাত্তকে উপস্থাপনের জন্য অনুকূলভাবে স্থাপন করা গ্রিডে অ-নেতিবাচক পূর্ণসংখ্য স্থানাঙ্ক আউটপুট দেবে will সংরক্ষণের আদেশ। স্কোয়ারগুলির একাধিক বিন্যাস অনুকূল হওয়ার ক্ষেত্রে, আপনি যে কোনও অনুকূল বিন্যাসকে আউটপুট করতে পারেন। মধ্যে 1 থেকে 100 জোড় সমন্বয় দেওয়া হবে।
এটি কোড গল্ফ, সংক্ষিপ্ততম কোড জয়।
উদাহরণ:
ইনপুট: [(0.0, 0.0), (1.0, 1.0), (0.0, 1.0), (1.0, 0.0)]
এটা একটা সহজ জিনিষ। আমাদের গ্রিডে স্কোয়ারগুলির কেন্দ্রগুলি 0.0, 1.0, 2.0 ইত্যাদিতে থাকে তাই এই আকারগুলি ইতিমধ্যে এই প্যাটার্নে স্কোয়ারগুলির কেন্দ্রগুলিতে পুরোপুরি স্থাপন করা হয়েছে:
21
03
সুতরাং আপনার আউটপুটটি হ'ল এই স্থানাঙ্কগুলি হওয়া উচিত, তবে পূর্ণসংখ্যার হিসাবে আপনার পছন্দসই বিন্যাসে:
[(0, 0), (1, 1), (0, 1), (1, 0)]
ইনপুট: [(2.0, 2.1), (2.0, 2.2), (2.1, 2.0), (2.0, 1.9), (1.9, 2.0)]
এই ক্ষেত্রে সমস্ত আকারগুলি স্কোয়ারের কেন্দ্রস্থলের (2, 2) এর কাছাকাছি অবস্থিত, তবে আমাদের সেগুলি দূরে সরিয়ে দেওয়া দরকার কারণ দুটি স্কোয়ার একই অবস্থানে থাকতে পারে না। কোনও আকারের সেন্ট্রয়েড থেকে বর্গাকার কেন্দ্রের মধ্যবর্তী দূরত্বটি হ্রাস করা যা এটি উপস্থাপন করে:
1
402
3
সুতরাং আপনার আউটপুট হওয়া উচিত [(2, 2), (2, 3), (3, 2), (2, 1), (1, 2)]
।
পরীক্ষার কেস:
[(0.0, 0.0), (1.0, 1.0), (0.0, 1.0), (1.0, 0.0)] -> [(0, 0), (1, 1), (0, 1), (1, 0)]
[(2.0, 2.1), (2.0, 2.2), (2.1, 2.0), (2.0, 1.9), (1.9, 2.0)] -> [(2, 2), (2, 3), (3, 2), (2, 1), (1, 2)]
[(94.838, 63.634), (97.533, 1.047), (71.954, 18.17), (74.493, 30.886), (19.453, 20.396), (54.752, 56.791), (79.753, 68.383), (15.794, 25.801), (81.689, 95.885), (27.528, 71.253)] -> [(95, 64), (98, 1), (72, 18), (74, 31), (19, 20), (55, 57), (80, 68), (16, 26), (82, 96), (28, 71)]
[(0.0, 0.0), (0.1, 0.0), (0.2, 0.0), (0.0, 0.1), (0.1, 0.1), (0.2, 0.1), (0.0, 0.2), (0.1, 0.2), (0.2, 0.2)] -> [(0, 0), (1, 0), (2, 0), (0, 1), (1, 1), (2, 1), (0, 2), (1, 2), (2, 2)]
[(1.0, 0.0), (1.0, 0.1), (1.0, 0.2), (1.0, 0.3)] -> [(1, 0), (0, 0), (2, 0), (1, 1)] or [(1, 0), (2, 0), (0, 0), (1, 1)]
[(3.75, 3.75), (4.25, 4.25)] -> [(3, 4), (4, 4)] or [(4, 3), (4, 4)] or [(4, 4), (4, 5)] or [(4, 4), (5, 4)]
আকারের সেন্ট্রয়েডগুলি থেকে স্কোয়ারগুলির কেন্দ্রগুলির মধ্যে সর্বমোট দূরত্ব যা প্রতিটি ক্ষেত্রে তাদের প্রতিনিধিত্ব করে (দয়া করে আপনার কোনও ত্রুটি চিহ্নিত করলে আমাকে জানান!):
0.0
3.6
4.087011
13.243299
2.724791
1.144123
শুধুই মজার জন্য:
আমাদের ইনপুট ফর্ম্যাটে মার্কিন যুক্তরাষ্ট্রে সংলগ্ন ভৌগলিক কেন্দ্রগুলির উপস্থাপনাটি এখানে টাইমসের মোটামুটি স্কেল হিসাবে ব্যবহৃত হয়েছিল:
[(15.2284, 3.1114), (5.3367, 3.7096), (13.0228, 3.9575), (2.2198, 4.8797), (7.7802, 5.5992), (20.9091, 6.6488), (19.798, 5.5958), (19.1941, 5.564), (17.023, 1.4513), (16.6233, 3.0576), (4.1566, 7.7415), (14.3214, 6.0164), (15.4873, 5.9575), (12.6016, 6.8301), (10.648, 5.398), (15.8792, 5.0144), (13.2019, 2.4276), (22.3025, 8.1481), (19.2836, 5.622), (21.2767, 6.9038), (15.8354, 7.7384), (12.2782, 8.5124), (14.1328, 3.094), (13.0172, 5.3427), (6.142, 8.8211), (10.0813, 6.6157), (3.3493, 5.7322), (21.3673, 7.4722), (20.1307, 6.0763), (7.5549, 3.7626), (19.7895, 7.1817), (18.2458, 4.2232), (9.813, 8.98), (16.8825, 6.1145), (11.0023, 4.2364), (1.7753, 7.5734), (18.8806, 6.3514), (21.3775, 6.6705), (17.6417, 3.5668), (9.9087, 7.7778), (15.4598, 4.3442), (10.2685, 2.5916), (5.3326, 5.7223), (20.9335, 7.6275), (18.4588, 5.0092), (1.8198, 8.9529), (17.7508, 5.4564), (14.0024, 7.8497), (6.9789, 7.1984)]
এগুলি পেতে, আমি এই পৃষ্ঠার দ্বিতীয় তালিকা থেকে স্থানাঙ্ক নিয়েছি এবং 0.4 * (125.0 - longitude)
আমাদের এক্স স্থানাঙ্কের 0.4 * (latitude - 25.0)
জন্য এবং আমাদের ওয়াই সমন্বয়ের জন্য ব্যবহার করেছি। এটি যা চক্রান্ত মত দেখায় তা এখানে:
উপরোক্ত স্থানাঙ্কগুলির সাথে তাদের কোড থেকে আউটপুট ব্যবহার করা প্রথম ব্যক্তি প্রকৃত বর্গক্ষেত্রের সাথে একটি চিত্র তৈরি করতে ইনপুট হিসাবে আউটপুট ব্যবহার করে!
(1, 2)
, না(1, 1)
।