সংলগ্ন সংখ্যার অদলবদল করে [স্ক্র্যাম্বলড দ্বি-মাত্রিক অ্যারে সংখ্যায় ভরা বাছাই করুন [বন্ধ]


9

আকারের একটি দ্বি-মাত্রিক অ্যারে n × n টি সংখ্যা 1 দিয়ে শুরু করে n * n সংখ্যায় পূর্ণ হয় Those এই সংখ্যাগুলি সারি প্রতি আরোহণ ক্রম অনুসারে বাছাই করতে হবে; একটি সারির প্রথম সংখ্যাটি অবশ্যই পূর্ববর্তী সারির শেষ সংখ্যার চেয়ে বেশি হতে হবে (সকলের মধ্যে ক্ষুদ্রতম সংখ্যা (1) [0,0] তে হবে) এটি 15 ধাঁধাটির মতো

এটি উদাহরণস্বরূপ, আকারের সাজানো অ্যারে এন = 3

1 2 3
4 5 6
7 8 9

ইনপুট

ইনপুটটি স্ক্যাম্বলড অ্যারে। এটি এন = 10 পর্যন্ত কোনও আকারের হতে পারে n n = 3 এর উদাহরণ:

4 2 3
1 8 5
7 9 6

আউটপুট

অ্যারে বাছাই করতে প্রয়োজনীয় অদলবদলের একটি তালিকা আউটপুট করুন । একটি অদলবদলকে নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়েছে: দুটি সংলগ্ন সংখ্যার অদলবদল অনুভূমিকভাবে বা উল্লম্বভাবে; তির্যক সোয়াপিংয়ের অনুমতি নেই।

উপরের উদাহরণের জন্য উদাহরণ আউটপুট:

  • অদলবদল 4 এবং 1
  • 8 এবং 5 অদলবদল করুন
  • 8 এবং 6 টি অদলবদল করুন
  • অদলবদল 9 এবং 8

স্বাপগুলি যত কম প্রয়োজন, তত ভাল। গণনার সময় অবশ্যই ব্যবহার্য হতে পারে।


এখানে এন = 10 সহ আরও একটি উদাহরণ ইনপুট রয়েছে:

41 88 35 34 76 44 66 36 58 28
6 71 24 89 1 49 9 14 74 2
80 31 95 62 81 63 5 40 29 39
17 86 47 59 67 18 42 61 53 100
73 30 43 12 99 51 54 68 98 85
13 46 57 96 70 20 82 97 22 8
10 69 50 65 83 32 93 45 78 92
56 16 27 55 84 15 38 19 75 72
33 11 94 48 4 79 87 90 25 37
77 26 3 52 60 64 91 21 23 7

যদি আমি ভুল না হয়ে থাকি তবে এর জন্য প্রায় 1000-2000 অদলবদল প্রয়োজন।


এটি কি ধাঁধা, গতি বা গল্ফিং সমস্যা?
মাইকেল ক্লেইন

@ মিশেলক্লেইন এটি একটি ধাঁধা।
জেকার্টার

এটি কি গোল? কোন ব্যাপ্তিগুলি পরিচালনা করা দরকার?
মাইকেল ক্লিন

1
@ স্টিভেরিলিল আমি আশঙ্কা করছি যে 100 টিরও কম স্ব্যাপের (বা এমনকি 1000; তবে দয়া করে আমাকে ভুল প্রমাণ করুন) এন = 10 উদাহরণ সমাধান করা বেশ অসম্ভব। তবুও অদলবদলের সংখ্যা হচ্ছে বিজয়ী মানদণ্ড (যদিও গণনা করা সম্ভব হবে!), যিনি স্বল্প সংখ্যক অদলবদর জয় নিয়ে সলিউশন নিয়ে আসে।
জ্যাকার্টার

1
@ জ্যাকার্টার আমার মনে হয় আপনি বলতে চাইছেন যে কেবল সংলগ্ন নম্বরগুলিই অদলবদল হতে পারে?
কুইন্টোপিয়া

উত্তর:


3

গাণিতিক, গল্ফ নয়

towards[a_,b_]:={a,a+If[#==0,{0,Sign@Last[b-a]},{#,0}]&@Sign@First[b-a]};
f[m_]:=Block[{m2=Map[QuotientRemainder[#-1,10]+1&,m,{2}]},
  Rule@@@Apply[10(#1-1)+#2&,#,{2}]&@
    Reap[Table[
      m2=NestWhile[
        Function[{x},x/.(Sow[#];Thread[#->Reverse@#])&[x[[##]]&@@@towards[First@Position[x,i,{2}],i]]]
        ,m2,#~Extract~i!=i&];
      ,{i,Reverse/@Tuples[Range[10],2]}];][[2,1]]]

ব্যাখ্যা :

অ্যালগরিদম "বুদ্বুদ সাজানোর" অনুরূপ। এই 100 টি সংখ্যা একের পর এক যথাযথ ক্রমে রেখে দেওয়া হয়েছে 1, 11, 21, ..., 91; 2, ..., 92; ...; 10, ..., 100,। এগুলি প্রথমে উপরে / নিচের দিকে সঠিক সারিগুলিতে সরানো হবে এবং তারপরে সঠিক কলামগুলিতে বাম দিকে সরানো হবে।

ফাংশন towardsঅদলবদল দুটি অবস্থান দেয়। উদাহরণস্বরূপ, যদি {5,2}স্থানান্তরিত হয় {1,1}, towards[{5,2},{1,1}]দেয় {{5,2},{5,1}}(উপরে সরান); এবং towards[{5,1},{1,1}]দেয় {{5,1},{4,1}}(বাম দিকে সরান)


ফলাফল :

পরীক্ষার ক্ষেত্রে স্বাপের মোট সংখ্যা 558 The প্রথম কয়েকটি অদলবদলটি হ'ল,

{1->76,1->34,1->35,1->88,1->41,11->16,11->69,11->46, ...

এলোমেলো কনফিগারেশনের জন্য, অদলবদলের মোট সংখ্যা 558.5 ± 28.3 (1σ)।

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

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