এই যোগ পিরামিড ধাঁধা একটি অনন্য সমাধান আছে?


12

একটি অতিরিক্ত পিরামিড P , এটি সমাধান করা যায় কিনা তা নির্ধারণ করুন। একটি অতিরিক্ত পিরামিড স্তরগুলি নিয়ে গঠিত যার প্রত্যেকটির নীচের অংশের চেয়ে এক নম্বর কম থাকে। লেয়ার i যেমন প্রতীক হিসাবে বিরাজ করছে PiP1 হ'ল বেস স্তর এবং Pi+1 স্তরটি Pi উপরে । পি i এর j তম সংখ্যাটি P i , j হিসাবে চিহ্নিত করা হয় । পি i , 1 হ'ল পি আই , এবং পি আইয়ের বামতম সংখ্যাPiPi,jPi,1PiPi,j+1 হ'লPi,j এর ডানদিকে নম্বর। আপনিমাঝখানে P i , j এবং P i , j + 1 এর শীর্ষে থাকাPi+1,j দেখতে পারেন, সুতরাং "অ্যাডিশনপিরামিড"নাম রাখবেন।Pi,jPi,j+1

  • Pi,j,Pi,jN , যে, পিরামিড প্রতিটি একটি নন-জিরো ইতিবাচক পূর্ণসংখ্যা।
  • i>1,Pi,j=Pi1,j+Pi1,j+1 , অর্থাৎ পিরামিডের বেস স্তরটিতে থাকা প্রতিটি সংখ্যা এটির নীচের দুটি সংখ্যার যোগফল।
  • যদি P1 গেছে n নম্বর, Pi হয়েছে ni+1 নম্বর, তাই Pi,ni+1 এর ডানদিকের সংখ্যা Pi । সহজ কথায়, প্রতিটি স্তরের নীচের স্তরটির চেয়ে এক নম্বর কম থাকে।

একটি অতিরিক্ত পিরামিড ধাঁধা Q হল একটি সংযোজন পিরামিড যা কিছু নম্বর সরানো হয়েছে (এর সাথে প্রতিস্থাপিত ? )। এর সমাধানটি একটি অতিরিক্ত পিরামিড P , যেখানে Qi,j?,Pi,j=Qi,j , অর্থাৎ ধাঁধাতে মূলত উপস্থিত সংখ্যাগুলি অপরিবর্তিত রেখে দেওয়া হয়েছে। এই ধাঁধা একাধিক সমাধান হতে পারে।

আপনার কাজটি হল একটি অতিরিক্ত পিরামিড ধাঁধা দেওয়া, এটির ঠিক একটি সমাধান রয়েছে কিনা তা নির্ধারণ করার জন্য।

ইনপুট

আপনি নিম্নলিখিত ফর্মগুলির যে কোনও একটিতে ইনপুট পেতে পারেন, তবে সামঞ্জস্যপূর্ণ:

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

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

আউটপুট

দুটি ধারাবাহিক স্বতন্ত্র মানগুলির মধ্যে একটি যেখানে একটি অনন্য সমাধানের উপস্থিতি এবং অন্যটি সমাধানের অনুপস্থিতি বা একাধিক সমাধানের উপস্থিতি উপস্থাপন করে।

বিধি

  • Qi+1,j=Qi,j+Qi,j+1 সর্বদা সত্য হবে যদিQi,j,Qi,j+1,Qi+1,jN , অর্থাৎ ইনপুট থাকে তিনটি সংখ্যা জানা থাকলে তাদের যোগফল নয় এমন দুটি অন্য সংখ্যার শীর্ষের একটি নম্বর না থাকার গ্যারান্টি রয়েছে।
  • Qi,j,Qi,j?, অর্থাৎ পিরামিডে কমপক্ষে একটি পরিচিত সংখ্যা থাকবে।
  • এই জিনিসগুলি করবেন না ।
  • এটি , তাই সংক্ষিপ্ত উত্তরটি জেতে! যাইহোক, কেবল আপনার ভাষা "খুব ভার্চুয়াল" হওয়ায় এটি আপনাকে কোনও পোস্ট পোস্ট করতে নিরুৎসাহিত করবেন না।

পরীক্ষার মামলা

উপরে থেকে বেস পর্যন্ত স্তরগুলির সাথে একটি অ্যারে 0প্রতিনিধিত্ব করে এই পরীক্ষার ক্ষেত্রে ব্যবহার করা হয় ?

[[10], [0, 0], [0, 2, 0], [0, 0, 0, 1]] -> True
[[32], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] -> True
[[0], [1, 1]] -> True
[[1], [0, 0]] -> False
[[10], [5, 5], [2, 3, 2], [0, 0, 0, 0]] -> False
[[5], [0, 0], [0, 0, 0]] -> False

কাজের উদাহরণ

পরীক্ষার মামলাগুলি এখানে কাজ করা হয়।

অনন্য সমাধান ঘ

10???2????1

পদক্ষেপ 1: x+y=2x=y=1

10???2??111

পদক্ষেপ 2: x=y=1x+y=2

10???22?111

পদক্ষেপ 3: x=y=2x+y=4

10?4?22?111

পদক্ষেপ 4: x+4=10x=6

1064?22?111

পদক্ষেপ 5-6 4 অনুরূপ।

10644223111

সুতরাং এখানে আমরা আমাদের অনন্য সমাধান আছে।

অনন্য সমাধান 2

32????????????????????

পদক্ষেপ 1: এখানে কোনও সুস্পষ্ট পদ্ধতি নেই, সুতরাং আসুন ন্যূনতম সম্ভাব্য মানগুলি ব্যবহার করার চেষ্টা করুন।

32??????????????111111

পদক্ষেপ 2-5: এটি ন্যূনতম মানগুলির সমাধানের ফলে মনে হয়, সুতরাং এটিই একমাত্র সমাধান এবং তাই অনন্য।

321616888444422222111111

ইঙ্গিত: এই ধাঁধা সম্পর্কিত অ্যাডাম পিরামিড ধাঁধা সম্পর্কে একটি উপপাদ্য রয়েছে যা আপনি যথেষ্ট পরিশ্রমী মনে করলে প্রমাণ করতে পারবেন।

অনন্য সমাধান 3

?11

পদক্ষেপ 1: x=y=1x+y=2

211

এটি একটি স্পষ্টতই অনন্য সমাধান।

কোন সমাধান 1

1??

minN=1x,y1x+y2>1

কোন সমাধান 2

1055232????

x+y=2x=y=1

10552321111

1+1=3

অ-অনন্য সমাধান

5?????

দুটি সমাধান:

552332112211

যেহেতু কমপক্ষে দুটি সমাধান রয়েছে তাই কোনও অনন্য সমাধান নেই।


উত্তর:


5

জেলি , 18 16 বাইট

FṀ‘ṗLSƝƬ€Ṗ€a@ċ⁼1

এটি অনলাইন চেষ্টা করুন!

একটি মোনাডিক লিঙ্ক যা পিরামিডকে বিপরীত ক্রমে নিয়ে যায় এবং সত্যের জন্য 1 এবং মিথ্যা হিসাবে 0 দেয়। পিরামিডে সর্বাধিক সংখ্যা পর্যন্ত বেস সহ সমস্ত সম্ভাব্য পিরামিড উত্পন্ন করে এবং ইনপুটটির জন্য একটি অনন্য মিল আছে কিনা তা পরীক্ষা করে।

এটির জন্য ব্যর্থ হয়েছে যে নির্দেশিত করার জন্য @ আরনাউল্ডকে ধন্যবাদ জানাই [[1,0],[0]]; এখন সংশোধন।

2 জোড় বাঁচানোর জন্য @ জোনাথন অ্যালানকে ধন্যবাদ!

ব্যাখ্যা

F                | Flatten
 Ṁ               | Maximum
  ‘              | Increase by 1
   ṗ             | Cartesian power of this with:
    L            | - Length of input
        €        | For each:
       Ƭ         | - Repeat the following until no change
     SƝ          |   - Sum of neighbours
         Ṗ€      | Remove last element from each list
           a@    | Logical and input with each list
             ċ   | Count times input appears
              ⁼1 | Check if equal to 1

খুব সুন্দর. "সমস্ত সম্ভাবনা উত্পন্ন করে" যুক্তি কীভাবে কাজ করে?
যোনা

1
@ জোনাঃ বেসের দৈর্ঘ্য সহ গ্রিডে সর্বোচ্চ সংখ্যার ক্যাটার্তেসিয়ান শক্তি । যেমন যদি সর্বোচ্চ 10 নম্বর ছিল এবং বেস 4 দৈর্ঘ্য তারপর এটি থেকে সবকিছু পরীক্ষা হবে [1,1,1,1]থেকে [10,10,10,10], অর্থাত্ 10000 সম্ভাবনার।
নিক কেনেডি

ফলাফল সত্য [[0,0],[0]]
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন আমি স্পষ্টতার জন্য জিজ্ঞাসা করেছি কোন জ্ঞাত মান সহ ইনপুটটি বৈধ কিনা। যদি তা হয় তবে আমি পরিবর্তন করতে পারি»2 যা আমার শেষ পরিবর্তনের সাথে হারিয়ে যাওয়া দক্ষতা ফিরে পাওয়ার সুবিধাও পেয়েছে, যদিও বাইটের ব্যয়েই।
নিক কেনেডি

2
...Ƭ€Ṗ€a@ċ⁼1দুটি বাইট সাশ্রয় করে (যদি না এ্যান্ডের সাথে প্রান্তের মামলাগুলি থাকে এবং পরীক্ষাগুলি দ্বারা প্রস্তুত না হয়?)
জোনাথন অ্যালান

2

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 303 227 বাইট

n=>{int i=n.Max(x=>x.Max()),j=n.Count,t=0,k,m=0,z;for(;t<Math.Pow(i,j);){k=t++;var s=n.Select(_=>(a:k%i+1,k/=i).a).ToList();if(n.All(x=>(z=0,b:x.All(o=>o==s[z++]|o<1),s=s.Skip(1).Select((a,b)=>a+s[b]).ToList()).b))m++;}m/=m-1;}

সত্য হলে ব্যতিক্রম ছুঁড়ে, মিথ্যা হলে সাধারনত চলে।

এটি অনলাইন চেষ্টা করুন!


1

ওল্ফ্রাম ভাষা (গণিত) , 85 88 বাইট

Count[l=Length@#;NestList[2#~MovingMedian~2&,#,l-1]&/@Range@Max@#~Tuples~l,#/. 0->_]==1&

এটি অনলাইন চেষ্টা করুন!

+3 স্থির।

ব্রুট ফোর্স: মান সহ সমস্ত ঘাঁটিগুলির জন্য , ফলাফলের পিরামিড প্রদত্ত ফর্মটির সাথে মেলে কিনা তা দেখুন এবং মিলের মোট সংখ্যা কিনা তা পরীক্ষা করুন missing1..(sum of all numbers)0


1

05 এ বি 1 ই , 25 বাইট

ZÌLsgãε©.Γü+}¨®š.S*˜O_}OΘ

পিরামিড স্তরগুলিকে উল্টে অর্ডারে, বেসের দিকে ডগা নেয় (যেমন [[0,0,0,1],[0,2,0],[0,0],[10]] ) নেয়।

এছাড়াও, মানচিত্রের ভিতরে 05AB1E এর কোথাও একটি বাগ রয়েছে বলে মনে হচ্ছে .. এটি কেবল -1 বাইটের জন্য ©...®šহওয়া উচিত ...yš..

এটি অনলাইনে চেষ্টা করুন বা আরও কয়েকটি পরীক্ষার কেস যাচাই করুন

একটি গৌণ সমতুল্য বাইট বিকল্প ©.ΓüO}®šহতে পারে [Ðg#üO}\): এটি অনলাইনে চেষ্টা করুন।

ব্যাখ্যা:

Z        # Get the flattened maximum of the (implicit) input (without popping)
 Ì       # Increase it by 2
  L      # Create a list in the range [1, max+2]
   sg    # Swap to get the input again, and get the length (amount of layers)
     ã   # Create a cartesian product of this list repeated that many times
ε        # Map each inner list to:
 ©       #  Store it in variable `®` (without popping)
       #  Collect all results until the following doesn't change anymore:
    ü    #   Get the pairwise:
     +   #    Sums
   }®š   #  After we've collected all, prepend the original list `®`
 .S      #  Now compare this potential pyramid with the (implicit) input-pyramid
         #  (-1 if a<b; 0 if a==b; 1 if a>b)
   *     #  Multiply that with the (implicit) input-pyramid
    ˜O   #  Then take the flattened sum
      _  #  And check that this sum equals 0 (1 if truhy; 0 if falsey)
}O       # After the map, take the sum to get the amount of truthy values
  Θ      # And trutify it (== 1), since we must output distinct values instead of truthy/falsey
         # (after which the result is output implicitly)

1
অনেক সহজ ক্ষেত্রে ব্যর্থ । দেখে মনে হচ্ছে আপনি এর a%b == 0শর্টকাট হিসাবে ব্যবহার করার চেষ্টা করছেন a == b || a == 0তবে এটি কার্যকর হয় না কারণ a বি এর একাধিক হতে পারে।
গ্রিমি

পৃথক ইস্যু: কোডটি এমন ক্ষেত্রে যেমন সত্য হয় [[0,0],[0]], যার অসীম সমাধান রয়েছে for আমি মনে করি যে এটি >সঠিকভাবে উচ্চারণকৃত Iফিক্সগুলিতে পরিবর্তিত হচ্ছে ।
গ্রিমি

1
@ গ্রিমির .S*পরিবর্তে স্থির করে নিন %, তাই মাত্র +2 বাইট।
কেভিন ক্রুইজসেন

0

হাস্কেল, 106 বাইট

z=zipWith
a#b=a*b==a*a
f x=[1|t<-mapM(\_->[1..sum(sum<$>x)])x,all and$z(z(#))x$iterate(z(+)=<<tail)t]==[1]

একটি উল্টো পিরামিড নেয়, যেমন [[0,0,0,1],[0,2,0],[0,0],[10]]

এটি অনলাইন চেষ্টা করুন!

হাস্কেলের মধ্যে নিষ্ঠুর শক্তি পদ্ধতির:

  • সমস্ত সম্ভাব্য বেস স্তর তৈরি করুন t( mapM(\_->[1..sum(sum<$>x)])x), যেখানে সংখ্যাগুলি 1 থেকে ইনপুট পিরামিডের সমস্ত সংখ্যার যোগফলে যায়
  • t( iterate(z(+)=<<tail)t) থেকে একটি পিরামিড তৈরি করুন
  • প্রতিটি স্তর উপাদান-ভিত্তিক ইনপুট ( z(z(#))x) এর সাথে তুলনা করুন । তুলনা ফাংশন a # bআয় Trueউভয় সংখ্যার যদি সমান হয় বা aশূন্য হয় ( a*b==a*a)।
  • 1মেলে এমন প্রতিটি পিরামিডের জন্য একটি নিন এবং ফলাফলটি তালিকাকে সিঙ্গলটন তালিকার সাথে তুলনা করুন [1]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.