यहां कितने वर्ग हैं?


12

यह चुनौती एक तस्वीर से प्रेरित है जो अक्सर फेसबुक पर घूमती है जो इस तरह दिखती है । हमारे बेस स्क्वायर को छोड़कर इस तरह दिखेगा:

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

वर्ग n x m1x1 वर्ग से बना है , आपको यह गिनना होगा कि उस वर्ग में कितने उप-वर्ग (1x1, 2x2, 3x3, 4x4, 5x5, आदि) फिट हो सकते हैं। वर्ग कुछ ग्रिड लाइनों (जैसे ऊपर के उदाहरण में) को याद किया जा सकता है या उदाहरण बॉलो में पूर्ण हो सकता है। जिसका अर्थ है कि गणितीय विच्छेद संभव नहीं है (जहाँ तक मुझे पता है)।

इनपुट:

  • nवर्ग बनाने के लिए इनपुट की लाइनों ( ) की मात्रा ;
  • निम्नलिखित वर्णों से बना एक वर्ग: इनपुट की रेखाओं के |पार n

आउटपुट:

  • किसी भी आकार के वर्गों की मात्रा जो इनपुट वर्ग के भीतर फिट हो सकती है (हम केवल यहां एक ही नंबर चाहते हैं, प्रत्येक आकार के लिए एक संख्या नहीं)।

जीत की कसौटी:

सबसे छोटा जवाब (बाइट्स की संख्या) जीतता है।

परीक्षण के मामलों:

में:

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

आउट: 30


में:

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

आउट: 5


में:

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

बाहर: 7


में:

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

आउट: 32


में:

2
┌─┐
└─┘

बाहर: 1


में:

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

आउट: 22


3
मैंने बड़े लोगों की गिनती नहीं की है, लेकिन क्या तीसरे में 11 वर्ग नहीं हैं?
वैल्यू इंक

@ केविनलाउ-नहींकेनी आप सही हैं मैंने एक गलती की।
साइमन लैंड्री

मुझे लगता है कि यह बहुत सरल है, इसे एक दहनशील रूप में गिना जाता है, क्या आप फ़ेसबुक के चित्र प्रारूप पर विचार करना पसंद करेंगे?
अबराम

1
संदर्भ के लिए, आयताकार मामला है A271916 है, जो देता है m*(m+1)*(3*n-m+1)/6एक के लिए mसे nके साथ आयत n >= m(आयाम एक की भरपाई के बाद प्रवेश के बजाय अंक खुद को वर्गों की बात करते हैं)
Sp3000

1
@SimonLandry मैं शुद्ध अर्थों में कॉम्बिनेटरिक्स का मतलब नहीं था, मुझे लगता है कि sp3000 ने सिर्फ इतना कहा कि पहले से ही, आपकी पहेली का पहला संस्करण (संपादित करने से पहले) एक साधारण गणितीय सफलता के लिए खुला था
Abr001am

जवाबों:


2

जावास्क्रिप्ट (ईएस 6), 292 बाइट्स 306 325

संपादित करें मैंने बाइट की गिनती पूरी तरह से गलत की है, अब सही thx http://bytesizematters.com/ को अंतिम बार सही करने की उम्मीद है, मुझे आशा है कि thx C hope 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>


मैं 307 बाइट्स गिनता हूं ।
कॉनर ओ'ब्रायन

@Conor ओके इस लिंक के लिए धन्यवाद
edc65
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.