কত স্কোয়ার আছে?


12

এই চ্যালেঞ্জ একটি ছবি যে মত ফেসবুকে যে কেমন লাগে roams দ্বারা অনুপ্রাণিত হয় এই । আমাদের বেস স্কোয়ারটি বাদে আরও দেখতে পাবেন:

┌─┬───┬─┐
├─┼─┬─┼─┤
├─┼─┴─┼─┤
├─┼─┬─┼─┤
└─┴─┴─┴─┘

বর্গটি n x m1x1 বর্গক্ষেত্রের তৈরি , আপনাকে গণনা করতে হবে যে কতগুলি সাব-স্কোয়ার (1x1, 2x2, 3x3, 4x4, 5x5 ইত্যাদি) বর্গাকারের মধ্যে ফিট করতে পারে। স্কোয়ারগুলি কিছু গ্রিড লাইন নিখোঁজ হতে পারে (উপরের উদাহরণের মতো) বা উদাহরণস্বরূপ নমুনা মতো সম্পূর্ণ হতে পারে। যার অর্থ একটি গাণিতিক ভাঙ্গন সম্ভব নয় (যতদূর আমি জানি)।

ইনপুট:

  • nবর্গক্ষেত্রটি তৈরি করতে ইনপুটগুলির লাইনগুলির পরিমাণ ( );
  • নিম্নলিখিত অক্ষর থেকে তৈরি একটি বর্গ: ইনপুট লাইন |জুড়ে n

আউটপুট:

  • ইনপুট স্কোয়ারের মধ্যে ফিট করা যায় এমন যে কোনও আকারের স্কোয়ারের পরিমাণ (আমরা কেবল এখানে একটি একক সংখ্যা চাই, প্রতিটি আকারের জন্য একটি সংখ্যা নয়)।

বিজয়ী মানদণ্ড:

সবচেয়ে ছোট উত্তর (বাইট সংখ্যা) জিতেছে।

পরীক্ষার কেস:

ভিতরে:

5
┌─┬─┬─┬─┐
├─┼─┼─┼─┤
├─┼─┼─┼─┤
├─┼─┼─┼─┤
└─┴─┴─┴─┘

আউট: 30


ভিতরে:

3
┌─┬─┐
├─┼─┤
└─┴─┘

আউট: 5


ভিতরে:

5
┌─┬─┐
├─┴─┤
├───┤
├─┬─┤
└─┴─┘

আউট: 7


ভিতরে:

4
┌─┬─┬─┬─┬─┬─┐
├─┼─┼─┼─┼─┼─┤
├─┼─┼─┼─┼─┼─┤
└─┴─┴─┴─┴─┴─┘

আউট: 32


ভিতরে:

2
┌─┐
└─┘

আউট: 1


ভিতরে:

4
┌─┬─┬─┬─┬─┬─┐
├─┴─┼─┼─┼─┴─┤
├─┬─┼─┼─┼─┬─┤
└─┴─┴─┴─┴─┴─┘

আউট: 22


3
আমি বড়গুলি গণনা করি নি, তবে তৃতীয়টির কি এতে 11 টি স্কোয়ার নেই?
মান কালি

@ কেভিনলউ-নোট কেনি আপনি ঠিক বলেছেন আমি ভুল করেছি।
সাইমন ল্যান্ড্রি

আমি মনে করি খুব সহজ, এটি একটি সমন্বয়মূলক ফর্ম মাধ্যমে গণনা করা হয়, আপনি বরং ফেসবুকের চিত্র বিন্যাস বিবেচনা করতে পছন্দ করবেন?
Abr001am

1
অবগতির জন্য, আয়তক্ষেত্রাকার ক্ষেত্রে দেখা যায় A271916 , যা দেয় m*(m+1)*(3*n-m+1)/6একটি জন্য mদ্বারা nসঙ্গে আয়তক্ষেত্র n >= m(মাত্রা এক পুষিয়ে যেহেতু এন্ট্রি বদলে পয়েন্ট নিজেদের বর্গের কথা বলে)
Sp3000

1
@ সিমোনল্যান্ড্রি আমি শুদ্ধ সংবেদীতে সংমিশ্রণের অর্থ বোঝাতে চাইনি, আমি মনে করি এসপি 3000 ইতিমধ্যে ইঙ্গিত করেছেন যে আপনার ধাঁধার প্রথম সংস্করণ (সম্পাদনা করার আগে) একটি সাধারণ গাণিতিক
অগ্রগতির

উত্তর:


2

জাভাস্ক্রিপ্ট (ES6), 292 বাইট 306 325

সম্পাদনা আমি বাইট গণনা পুরোপুরি ভুল করেছি, এখনই সংশোধন করেছি thx http://bytesizematters.com/ শেষ বারের জন্য সঠিক আশা করি THX Cᴏɴᴏʀ O'Bʀɪᴇɴ দেখুন https://goo.gl/LSHC1U (এবং আক্ষরিক ব্যবহার করে 1 বাইট কম '\ n' এর পরিবর্তে নতুন লাইন)

(h,z)=>(o=>{r=p=>" ),┌(─┐┬'└│├┘┴┤┼".search(z[p]);for(q=s=0;++s<o/2&s<h;)for(y=0;y<(h-s)*o;y+=o)for(x=0;x<o-s*2;q+=!n,x+=2)for(n=i=0,t=x,u=y;i<=s;t+=2,u+=o,i++)n|=i<s&(!(r(t+y)&r(t+y+s*o)&1)|!(r(x+u)&r(x+u+s*2)&2))|i>0&(!(r(t+y)&r(t+y+s*o)&4)|!(r(x+u)&r(x+u+s*2)&8))})(-~z.search`
`)|q

আমার প্রত্যাশার চেয়ে দীর্ঘ (সম্ভবত আরও কয়েকটি বাইট মুণ্ডিত করা যেতে পারে)

সমস্ত সম্ভাব্য স্কোয়ারগুলি চেক করে গণনা করা হয়।

rফাংশন হচ্ছে একটি বিটম্যাপ প্রতিটি বর্ণ-সংকেত মানচিত্র

  • 1: অনুভূমিক লাইন কেন্দ্র থেকে ডানদিকে
  • 2: নীচে উল্লম্ব লাইন কেন্দ্র
  • 4: অনুভূমিক রেখা কেন্দ্রটি বামে
  • 8: শীর্ষে উল্লম্ব লাইন কেন্দ্র

যে কোনও আকারের একটি বর্গ থাকতে হবে

  • শীর্ষ এবং নীচের সারিতে প্রথম ব্যতীত সমস্ত কক্ষে 4
  • শীর্ষে এবং নীচের সারিতে সর্বশেষ ব্যতীত সমস্ত কক্ষে 1 টি
  • বামতম এবং ডানদিকের কলামের প্রথমটি বাদে সমস্ত কক্ষে 8 টি
  • বামতম এবং ডানদিকের কলামে সর্বশেষ ব্যতীত সমস্ত কক্ষে 2 টি

পরীক্ষা

f=(h,z)=>(o=>{r=p=>" ),┌(─┐┬'└│├┘┴┤┼".search(z[p]);k=(p,d,m)=>r(p)&r(p+s*d)&m;for(q=s=0;++s<o/2&s<h;)for(y=0;y<(h-s)*o;y+=o)for(x=0;x<o-s*2;q+=!n,x+=2)for(n=i=0,t=x,u=y;i<=s;t+=2,u+=o,i++)n=n|i<s&(!k(t+y,o,1)|!k(x+u,2,2))|i>0&(!k(t+y,o,4)|!k(x+u,2,8));})(-~z.search`
`)|q

console.log=(...x)=>O.textContent+=x+'\n'

// Less golfed

Uf=(h,z)=>{
  o=-~z.search`\n`;
  w=o/2;
  r=p=>" ),┌(─┐┬'└│├┘┴┤┼".search(z[p]);
  k=(p,d,m)=>r(p)&r(p+s*d)&m;
  for(q=s=0;++s<w&s<h;)
    for(y=0;y<(h-s)*o;y+=o)
      for(x=0;x<(w-s)*2;q+=!n,x+=2)
        for(n=i=0,t=x,u=y;i<=s;t+=2,u+=o,i++)
          n|=i<s&(!k(t+y,o,1)|!k(x+u,2,2))
          |i>0&(!k(t+y,o,4)|!k(x+u,2,8));
  return q
}

;[[5,`┌─┬───┬─┐
├─┼─┬─┼─┤
├─┼─┴─┼─┤
├─┼─┬─┼─┤
└─┴─┴─┴─┘`,20]
,[5,`┌─┬─┬─┬─┐
├─┼─┼─┼─┤
├─┼─┼─┼─┤
├─┼─┼─┼─┤
└─┴─┴─┴─┘`,30]
,[3,`┌─┬─┐
├─┼─┤
└─┴─┘`,5]
,[5,`┌─┬─┐
├─┴─┤
├───┤
├─┬─┤
└─┴─┘`,7]
,[4,`┌─┬─┬─┬─┬─┬─┐
├─┼─┼─┼─┼─┼─┤
├─┼─┼─┼─┼─┼─┤
└─┴─┴─┴─┴─┴─┘`,32]
,[2,`┌─┐
└─┘`,1]
,[4,`┌─┬─┬─┬─┬─┬─┐
├─┴─┼─┼─┼─┴─┤
├─┬─┼─┼─┼─┬─┤
└─┴─┴─┴─┴─┴─┘`,22],
,[6,`┌─┬─────┐
├─┼─┬─┐ 
 ├─┼─┼─┤
 └─┼─┼─┤
   └─┼─┤
└─────┴─┘`,12],  
,[6,`┌─┬─┬─┬─┐
├─┴─┼─┼─┤
   └─┼─┤
├─┬─┬─┼─┤
├─┼─┼─┼─┤
└─┴─┴─┴─┘`,23]]  
.forEach(t=>{
  var r=t[0],a=t[1],k=t[2],x=f(r,a)
  console.log(x==k?'OK '+x:'KO '+x+' Expected '+k,'\n'+a)
})
<pre id=O></pre>



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