বর্গক্ষেত্রের ছিদ্রগুলি বর্গক্ষেত্রের গর্তগুলিতে স্থাপন করা


20

নিউ ইয়র্ক টাইমসের এই গ্রাফিকের নকশায় আমি আগ্রহী ছিলাম, যেখানে প্রতিটি মার্কিন রাষ্ট্রের গ্রিডে একটি বর্গ দ্বারা প্রতিনিধিত্ব করা হয়। আমি অবাক হয়েছি যে তারা স্কোয়ারগুলি হাতে রেখেছিল বা প্রকৃত অর্থে রাজ্যের অবস্থানগুলি উপস্থাপনের জন্য স্কোয়ারগুলির সর্বোত্তম স্থান নির্ধারণ করেছে (কিছু সংজ্ঞার অধীনে)।

নিউ ইয়র্ক টাইমসের গান ব্যাকগ্রাউন্ড চেক গ্রাফিক

আপনার কোডটি রাজ্যগুলি (বা অন্যান্য স্বেচ্ছাচারী দ্বি-মাত্রিক আকারগুলি) উপস্থাপনের জন্য সর্বোত্তমভাবে স্কোয়ার স্থাপনের চ্যালেঞ্জের একটি ছোট্ট অংশ গ্রহণ করবে, বিশেষত, এটি ধরে নেওয়া যাচ্ছে যে ইতিমধ্যে আমাদের সমস্ত ভৌগলিক কেন্দ্র বা আকারের সেন্ট্রয়েড রয়েছে একটি সুবিধাজনক বিন্যাস, এবং এই জাতীয় চিত্রের উপাত্তগুলির সর্বোত্তম উপস্থাপনা হ'ল আকারগুলির সেন্ট্রয়েডগুলি থেকে স্কোয়ারগুলির কেন্দ্রগুলির মধ্যে যেগুলিগুলির প্রতিনিধিত্ব করে তার মোট দূরত্ব সর্বনিম্ন, প্রতিটিতে বেশিরভাগ এক বর্গ সহ সম্ভাব্য অবস্থান।

আপনার কোডটি কোনও সুবিধাজনক বিন্যাসে 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)
টিম পেডারিক

ভাল ধরা, ধন্যবাদ!
লুক

আপনি কি প্রতিটি পরীক্ষার ক্ষেত্রে সমস্ত দূরত্বের মোট পোস্ট করতে পারেন? এটি অবশ্যই একটি অনানুষ্ঠানিক সমস্যা এবং এটি আমাদের বিকল্প সমাধান আসলেও সর্বোত্তম কিনা তা যাচাই করার অনুমতি দেয়।
flawr

PS: আপনি কি প্রকৃতপক্ষে পরীক্ষা করেছেন যে প্রদত্ত মানচিত্রটি সত্যই আপনার অপটিমাইজেশন সমস্যার বৈধ ফলাফল? কারণ স্বজ্ঞাত আমি এটি মনে করি না।
flawr

আমি মোট দূরত্ব যুক্ত করতে পারি। টাইমস ব্যবহৃত মানচিত্র প্রায় অনুকূল নয়।
লুক

উত্তর:


3

গণিত, 473 বাইট

f@p_:=(s=Flatten@Round@p;v=Array[{x@#,y@#}&,n=Length@p];
  Do[w=Flatten[{g@#,h@#}&/@(b=Flatten@Position[p,x_/;Norm[x-p[[i]]]<=2,{1}])];f=Total[Norm/@(p-v)]+Total[If[#1==#2,1*^4,0]&@@@v~Subsets~{2}]/.Flatten[{x@#->g@#,y@#->h@#}&@@@w]/.Thread[Flatten@v->s];
    c=w∈Integers&&And@@MapThread[Max[#-2,0]<=#2<=Min[#+2,100]&,{Flatten@p[[b]],w}];s=Flatten@ReplacePart[s~Partition~2,Thread[b->Partition[w/.Last@Quiet@NMinimize[{f,c},w,MaxIterations->300],2]]]
    ,{i,n}]~Do~{2};s~Partition~2)

গল্ফ করার আগে:

f[p_]:=(n=Length@p;s=Flatten@Round@p;v=Array[{x[#],y[#]}&,n];
  Do[
    v2=Flatten[{x2[#],y2[#]}&/@(b=Flatten@Position[p,x_/;Norm[x-p[[i]]]<=2,{1}])];
    f2=Total[Norm/@(p-v)]+Total[If[#1==#2,1*^4,0]&@@@Subsets[v,{2}]]/.Flatten[{x[#]->x2[#],y[#]->y2[#]}&@@@v2]/.Thread[Flatten@v->s];
    c2=v2∈Integers&&And@@MapThread[Max[#-2,0]<=#2<=Min[#+2,100]&,{Flatten@p[[b]],v2}];
    s=Flatten@ReplacePart[s~Partition~2,Thread[b->Partition[v2/.Last@Quiet@NMinimize[{f2,c2},v2,MaxIterations->300],2]]];
    ,{i,n}]~Do~{2};
  s~Partition~2)

ব্যাখ্যা :

এই অপ্টিমাইজেশান সমস্যাটি ম্যাথমেটিকায় বর্ণনা করা কঠিন নয়। pদৈর্ঘ্যের পয়েন্টগুলির একটি তালিকা দেওয়া n,

  • ভেরিয়েবল x[i]এবং y[i]: v=Array[{x[#],y[#]}&,n],
  • ফাংশন কমানোর জন্য এর displacements মোট হল: f=Total[Norm/@(p-v)],
  • সীমাবদ্ধতার আছেন: c=Flatten[v]∈Integers&&And@@(Or@@Thread[#1!=#2]&@@@Subsets[v,{2}])

এবং, NMinimize[{f,cons},v,MaxIterations->Infinity]ফলাফল দেবে। তবে দুর্ভাগ্যক্রমে, এ জাতীয় সোজা ফরোয়ার্ড স্কিম রূপান্তর করা খুব জটিল বলে মনে হচ্ছে।

জটিলতার সমস্যাটি সমাধান করার জন্য দুটি কৌশল গ্রহণ করা হয়:

  • একটি বৃহত "মিথস্ক্রিয়া",, If[#1==#2,1*^4,0]&পয়েন্টগুলির মধ্যে সংঘর্ষ এড়াতে ব্যবহৃত হয়।
  • একই সাথে সমস্ত পরিবর্তনশীলকে অপ্টিমাইজ করার পরিবর্তে আমরা প্রতিবেশী প্রতিবেশীর সাথে প্রতিটি পয়েন্টে অনুকূলিতকরণ করি।

আমরা পয়েন্টগুলি গোল করে প্রাথমিক অনুমান থেকে শুরু করি। একের পর এক অপ্টিমাইজেশন করা হয়ে গেলে সংঘর্ষগুলি সমাধান হওয়ার আশা করা হয় এবং একটি অনুকূলিত ব্যবস্থা স্থাপন করা হয়।

চূড়ান্ত সমাধানটি সর্বোত্তম না হলেও কমপক্ষে ভাল। (আমি বিশ্বাস করি :P)


ফলাফল :

ফলে মজা করার জন্য শুধু নিম্নে দেখানো হল। গা green় সবুজ পয়েন্টগুলি হ'ল ইনপুট, ধূসর স্কোয়ারগুলি আউটপুট এবং কালো লাইনগুলি স্থানচ্যুতি দেখায়।

এখানে চিত্র বর্ণনা লিখুন

স্থানচ্যুতির যোগফল 19.4595 । এবং সমাধান হয়

{{15,3},{5,4},{13,4},{2,5},{8,6},{21,6},{20,5},{19,5},{17,1},{17,3},{4,8},{14,6},{15,6},{13,7},{11,5},{16,5},{13,2},{22,8},{19,6},{21,7},{16,8},{12,9},{14,3},{13,5},{6,9},{10,7},{3,6},{22,7},{20,6},{8,4},{20,7},{18,4},{10,9},{17,6},{11,4},{2,8},{19,7},{22,6},{18,3},{10,8},{15,4},{10,3},{5,6},{21,8},{18,5},{2,9},{18,6},{14,8},{7,7}}

হা! আমি কেবল শেষের মতো একটি চিত্র তৈরি করার কথা ভাবছিলাম। সাবাশ.
টিম পেডারিক

ভাল কাজ. স্বজ্ঞাতভাবে, মার্কিন যুক্তরাষ্ট্রে আপনার মানচিত্রটি আমার কাছে সর্বোত্তম দেখাচ্ছে।
লুক

2

পাইথন 3, 877 বাইট

এই না একটি সঠিক বাস্তবায়ন। এটি "আরও পরীক্ষার মামলার" দ্বিতীয় অবস্থানে ব্যর্থ হয়, 13.5325 মোট দূরত্ব সহ একটি সমাধান উত্পাদন করে, যেখানে প্রদত্ত সমাধানটির প্রয়োজন কেবল 13.2433। আরও জটিল বিষয়গুলি হ'ল আমার গল্ফযুক্ত প্রয়োগটি আমি প্রথমে লিখেছি ng

তবে, অন্য কেউ উত্তর দেয় নি, এবং অতীত কেটে যাওয়ার পক্ষে এটি খুব মজাদার একটি চ্যালেঞ্জ। এছাড়াও, আমি ইউএসএ তথ্য থেকে উত্পন্ন একটি ছবি আছে, তাই আছে।

অ্যালগরিদম এরকম কিছু:

  1. নিকটতম পূর্ণসংখ্যা স্থানাঙ্কগুলিতে সমস্ত পয়েন্ট পুশ করুন (এরপরে একটি "বর্গ" নামে পরিচিত)।
  2. সর্বাধিক সংখ্যক পয়েন্ট সহ স্কোয়ারটি সন্ধান করুন।
  3. ইতিমধ্যে দ্বিতীয় ধাপে প্রক্রিয়া করা যে কোনও স্কোয়ারটি বাদ দিয়ে এইটির নয়-বর্গাকার প্রতিবেশে সেই পয়েন্টগুলির সর্বাধিক ব্যয় পুনরায় বিতরণ সন্ধান করুন।
    • পুনরায় বিতরণ বর্গক্ষেত্রের জন্য এক পয়েন্টের মধ্যে সীমাবদ্ধ, যদি না এটি যথেষ্ট স্কোয়ার সরবরাহ না করে (যদিও তারপরেও, কেবল একটি পয়েন্ট এই স্কোয়ারে থাকবে )।
  4. কোনও স্কোয়ারের একাধিক পয়েন্ট না হওয়া পর্যন্ত দ্বিতীয় ধাপ থেকে পুনরাবৃত্তি করুন।
  5. ক্রমানুসারে প্রতিটি মূল পয়েন্ট চিহ্নিত করুন এবং তাদের স্কোয়ারগুলি ক্রমানুসারে নির্ধারণ করুন।

আমার কাছে এই অ্যালগরিদমের কোনও অংশের জন্য অনুকূলতার প্রমাণ নেই, কেবল এটি একটি দৃ susp় সন্দেহ যে এটি "বেশ ভাল" ফলাফল প্রদান করবে। আমি মনে করি এটিই আমার ইউনিয়গুলিতে আমরা "হিউরিস্টিক অ্যালগরিদম" বলেছিলাম ...!

l=len
I,G,M=-1,101,150
d=lambda x,y,X,Y:abs(x-X+1j*(y-Y))
N=(0,0),(I,0),(0,I),(1,0),(0,1),(I,I),(1,I),(1,1),(I,I)
n=lambda p,e:[(x,y)for(x,y)in(map(sum,zip(*i))for i in zip([p]*9,N))if(x,y)not in e and I<x<G and I<y<G]
def f(p):
 g={};F=[];O=[I]*l(p)
 for P in p:
  z=*map(round,P),
  if z in g:g[z]+=[P]
  else:g[z]=[P]
 while l(g)<l(p):
  L,*P=0,
  for G in g:
   if l(g[G])>l(P):L,P=G,g[G]
  o=n(L,F);h=l(o)<l(P);c=[[d(*q,*r)for r in o]for q in P];r={}
  while l(r)<l(c):
   A=B=C=M;R=S=0
   while R<l(c):
    if R not in r:
     z=min(c[R])
     if z<A:B,A=R,z;C=c[R].index(A)
    R+=1
   while S<l(c):
    if S==B:
     v=0
     while v<l(c[S]):
      if v!=C:c[S][v]=M
      v+=1
    elif C<1or not h:c[S][C]=M
    S+=1
   r[B]=C
  for q in r:
   x,y=P[q],o[r[q]]
   if y==L or y not in g:g[y]=[x]
   else:g[y]+=[x]
  F+=[L]
 for G in g:
  O[p.index(g[G][0])]=G
 return O

এবং এটি ইউএসএ ডেটাতে চালনার ফলাফল (এমন কোনও ইউটিলিটি ফাংশনকে ধন্যবাদ যা ফলাফলগুলিকে এসভিজিতে পরিণত করে): সুসংগত মার্কিন যুক্তরাষ্ট্রের একটি পরিকল্পনামূলক মানচিত্র

এটি একটি অবৈধ কোড উত্পাদিত কোডের চেয়ে কিছুটা খারাপ; একমাত্র দৃশ্যমান পার্থক্যটি হ'ল উপরের-ডানদিকের বর্গটি আরও ভাল বামে আরও একটি বাম দিকে।


আপনি পিছনে একটি থাপ্পর পেতে! দেখে মনে হচ্ছে, টাইমসের চিত্রের মতো এই চেহারাটিকে আরও কিছুটা তৈরি করতে আমার দ্রাঘিমাংশের স্কেলিংয়ের কাজ করা উচিত।
লুক

কৌতূহল থেকে দূরে, আপনি মার্কিন মানচিত্রের জন্য কোন মোট দূরত্ব পাবেন?
টম কার্পেন্টার

আমার নিজের সম্ভবত এই প্রশ্নটি করা উচিত ছিল ... কারণ এটি কেবলমাত্র আমাকে দেখিয়েছে যে আমার গল্ফ প্রয়োগ বাস্তবায়নের চেয়েও খারাপ is আমার আসল, অবারিত সংস্করণটি এটি 20.9164 এ পেয়েছে, তবে আমি যে সংস্করণটি পোস্ট করেছি তা আমাকে 20.9987 দিয়েছে। * দীর্ঘশ্বাস *
টিম পেডারিক

1

ম্যাটল্যাব, 316 343 326 বাইট

এটি একটির কাজ চলছে - এটি দ্রুত নয়, তবে এটি সংক্ষিপ্ত। দেখে মনে হচ্ছে বেশিরভাগ পরীক্ষার কেস কেটে গেছে। বর্তমানে মানচিত্রের মজাদার ইনপুটটির জন্য একটি চলছে, তবে এটি এখনও 10 মিনিট পরে চলেছে, তাই ...

function p=s(a)
c=ceil(a');a=a(:,1)+j*a(:,2);[~,p]=r(a,c,[],Inf);p=[real(p),imag(p)];end
function [o,p]=r(a,c,p,o)
if ~numel(c)
o=sum(abs(p-a));else
x=c(1)+(-1:1);y=c(2)+(-1:1);P=p;
for X=1:3
for Y=1:3
Q=x(X)+j*y(Y);if(x(X)>=0)&(y(Y)>=0)&all(Q~=P)
[O,Q]=r(a,c(:,2:end),[P;Q],o);
if(O<o) o=O;p=Q;disp(o);end
end;end;end;end;end

এবং আরও কিছুটা পাঠযোগ্য বিন্যাসে:

function p=squaremap(a)
%Input format: [2.0, 2.1;2.0, 2.2;2.1, 2.0;2.0, 1.9;1.9, 2.0]

    c=ceil(a'); %Convert each point to the next highest integer centre
    a=a(:,1)+j*a(:,2); %Convert each 2D point into a complex number
    [~,p]=r(a,c,[],Inf); %Recurse!
    p=[real(p),imag(p)];
end

function [o,p]=r(a,c,p,o)
    if ~numel(c) %If we are as deep as we can go
        o=sum(abs(p-a)); %See what our overall distance is
    else
        x=c(1)+(-1:1);y=c(2)+(-1:1); %For each point we try 9 points, essentially a 3x3 square
        P=p;
        for X=1:3;
            for Y=1:3
                %For each point
                Q=x(X)+j*y(Y); %Covert to a complex number
                if(x(X)>=0)&(y(Y)>=0)&all(Q~=P) %If the point is not negative and has not already been used this iteration
                    [O,Q]=r(a,c(:,2:end),[P;Q],o); %Otherwise iterate further
                    if(O<o) o=O;p=Q;end %Keep updating the smallest path and list of points we have found
                end
            end
        end
    end
end

ইনপুট ফর্ম্যাটটি একটি ম্যাটল্যাব অ্যারে হিসাবে প্রত্যাশিত, যেমন:

[2.0, 2.1;2.0, 2.2;2.1, 2.0;2.0, 1.9;1.9, 2.0]

যা প্রশ্নে ফর্ম্যাটটির খুব কাছাকাছি, যা কিছুটা দূরে যাওয়ার অনুমতি দেয়।

আউটপুট ইনপুট হিসাবে একই বিন্যাসে হয়, একটি অ্যারে যেখানে কোনও প্রদত্ত সূচক ইনপুট এবং আউটপুট উভয় ক্ষেত্রে একই পয়েন্টের সাথে মিলে যায়।


হুম, 8 ঘন্টা এবং এখনও মানচিত্রের একটিতে চলছে ... এই সমাধানটি সর্বাধিক অনুকূল খুঁজে পাওয়ার গ্যারান্টিযুক্ত, তবে এটি নিষ্ঠুর বলের মাধ্যমে এটি ঘটে তাই খুব দীর্ঘ সময় লাগে।

আমি আরও একটি সমাধান নিয়ে এসেছি যা অনেক দ্রুত, তবে অন্যান্য উত্তরের মতো পরীক্ষার ক্ষেত্রে সবচেয়ে অনুকূল খুঁজে পেতে ব্যর্থ হয়। আকর্ষণীয়ভাবে আমি আমার অন্যান্য সমাধানের জন্য যে মানচিত্রটি পাই তা নীচে দেখানো হয়েছে (পোস্ট করা হয়নি)। এটি 20.72 এর মোট দূরত্ব অর্জন করে।

মানচিত্র

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.