এএসসিআইআই কেলে গ্রাফ


26

আমি যে ভিন্ন চ্যালেঞ্জটি তৈরি করছি তার জন্য কিছু গবেষণা করার সময়, আমি একটি কেলে গ্রাফ জুড়ে এসেছি , বিশেষত এটি । যেহেতু আমি শীর্ষস্থানীয় চ্যালেঞ্জ লেখকদের একজন, অবশ্যই অবশ্যই এটির জন্য আমাকে একটি এসসিআইআই আর্ট চ্যালেঞ্জ তৈরি করতে হয়েছিল।

আপনার চ্যালেঞ্জটি হ'ল দুটি জেনারেটরে ফ্রি গোষ্ঠীর কেলে গ্রাফের এই ASCII শিল্প চিত্রটি নিম্নরূপে উত্পাদন করা:

                                               +                                               
                                              +++                                              
                                             + | +                                             
                                            ++-+-++                                            
                                             + | +                                             
                                          +    |    +                                          
                                         +++   |   +++                                         
                                        + |    |    | +                                        
                                       ++-+----+----+-++                                       
                                        + |    |    | +                                        
                                         +++   |   +++                                         
                                          +    |    +                                          
                                   +           |           +                                   
                                  +++          |          +++                                  
                                 + | +         |         + | +                                 
                                ++-+-++        |        ++-+-++                                
                                 + | +         |         + | +                                 
                              +    |           |           |    +                              
                             +++   |           |           |   +++                             
                            + |    |           |           |    | +                            
                           ++-+----+-----------+-----------+----+-++                           
                            + |    |           |           |    | +                            
                             +++   |           |           |   +++                             
                              +    |           |           |    +                              
                                 + | +         |         + | +                                 
                                ++-+-++        |        ++-+-++                                
                                 + | +         |         + | +                                 
                    +             +++          |          +++             +                    
                   +++             +           |           +             +++                   
                  + | +                        |                        + | +                  
                 ++-+-++                       |                       ++-+-++                 
                  + | +                        |                        + | +                  
               +    |    +                     |                     +    |    +               
              +++   |   +++                    |                    +++   |   +++              
             + |    |    | +                   |                   + |    |    | +             
            ++-+----+----+-++                  |                  ++-+----+----+-++            
             + |    |    | +                   |                   + |    |    | +             
              +++   |   +++                    |                    +++   |   +++              
               +    |    +                     |                     +    |    +               
        +           |                          |                          |           +        
       +++          |                          |                          |          +++       
      + | +         |                          |                          |         + | +      
     ++-+-++        |                          |                          |        ++-+-++     
      + | +         |                          |                          |         + | +      
   +    |           |                          |                          |           |    +   
  +++   |           |                          |                          |           |   +++  
 + |    |           |                          |                          |           |    | + 
++-+----+-----------+--------------------------+--------------------------+-----------+----+-++
 + |    |           |                          |                          |           |    | + 
  +++   |           |                          |                          |           |   +++  
   +    |           |                          |                          |           |    +   
      + | +         |                          |                          |         + | +      
     ++-+-++        |                          |                          |        ++-+-++     
      + | +         |                          |                          |         + | +      
       +++          |                          |                          |          +++       
        +           |                          |                          |           +        
               +    |    +                     |                     +    |    +               
              +++   |   +++                    |                    +++   |   +++              
             + |    |    | +                   |                   + |    |    | +             
            ++-+----+----+-++                  |                  ++-+----+----+-++            
             + |    |    | +                   |                   + |    |    | +             
              +++   |   +++                    |                    +++   |   +++              
               +    |    +                     |                     +    |    +               
                  + | +                        |                        + | +                  
                 ++-+-++                       |                       ++-+-++                 
                  + | +                        |                        + | +                  
                   +++             +           |           +             +++                   
                    +             +++          |          +++             +                    
                                 + | +         |         + | +                                 
                                ++-+-++        |        ++-+-++                                
                                 + | +         |         + | +                                 
                              +    |           |           |    +                              
                             +++   |           |           |   +++                             
                            + |    |           |           |    | +                            
                           ++-+----+-----------+-----------+----+-++                           
                            + |    |           |           |    | +                            
                             +++   |           |           |   +++                             
                              +    |           |           |    +                              
                                 + | +         |         + | +                                 
                                ++-+-++        |        ++-+-++                                
                                 + | +         |         + | +                                 
                                  +++          |          +++                                  
                                   +           |           +                                   
                                          +    |    +                                          
                                         +++   |   +++                                         
                                        + |    |    | +                                        
                                       ++-+----+----+-++                                       
                                        + |    |    | +                                        
                                         +++   |   +++                                         
                                          +    |    +                                          
                                             + | +                                             
                                            ++-+-++                                            
                                             + | +                                             
                                              +++                                              
                                               +                                               

ইনপুট

কোনও ইনপুট নেই, যদি না আপনার ভাষার স্পষ্টভাবে চালনার জন্য ইনপুট প্রয়োজন।

আউটপুট

উপরে প্রদর্শিত ASCII শিল্পের উপস্থাপনা।

MD5 হ্যাশস

যেহেতু এটি একটি দুর্দান্ত বড় আউটপুট, আপনার কাজ পরীক্ষা করার জন্য এখানে কিছু MD5 হ্যাশ রয়েছে আউটপুটের উদাহরণ ফর্মগুলির (সমস্তগুলি বিওএম ছাড়াই ইউটিএফ -8):

  • স্কোয়ার স্পেস প্যাডিং, CR/LFলাইনফিডস এবং ট্রেলিং করা নতুন লাইন - 954B93871DAAE7A9C05CCDF79B00BF3Cএটি উপরে ব্যবহৃত উপস্থাপনা।
  • স্কোয়ার স্পেস প্যাডিং, CR/LFলাইনফিডস, কোনও পূর্ববর্তী নিউলাইন নেই -28405EF91DA305C406BD03F9275A175C
  • স্কোয়ার স্পেস প্যাডিং, LFলাইনফিডস এবং নতুন লাইনের পিছনে -8CA65FB455DA7EE5A4C10F25CBD49D7E
  • স্কোয়ার স্পেস প্যাডিং, LFলাইনফিডস, কোনও পূর্ববর্তী নিউলাইন নেই -FDB1547D68023281BB60DBEC82C8D281
  • কোনও পিছনে স্থান, CR/LFলাইনফিড এবং নতুন লাইনের পিছনে নেই -77FDE8CE5D7BD1BDD47610BA23264A19
  • কোনও পিছনে স্থান নেই, CR/LFলাইনফিড নেই, কোনও পূর্ববর্তী নিউলাইন নেই -EAD390C3EFD37F0FCACE55A84B793AB5
  • কোনও পিছনে স্থান, LFলাইনফিড এবং নতুন লাইনের পিছনে নেই -1F6CAB740F87881EB2E65BED65D08C36
  • কোনও পিছনে স্থান নেই, LFলাইনফিড নেই, কোনও পূর্ববর্তী নিউলাইন নেই -7D41CE1E637619FEA9515D090BFA2E9C
  • যদি তুলনার জন্য আপনি অতিরিক্ত MD5 চান তবে দয়া করে আমাকে জানান এবং আমি এটি তৈরি করব এবং চ্যালেঞ্জটি আপডেট করব।

বিধি

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

আমি কিছুটা অবাক হয়েছি এটি কোনওভাবেই প্যারাম্যাট্রিসড নয় - দেখে মনে হচ্ছে এটি একটি ক্রমের ষষ্ঠ হওয়া উচিত।
নীল


@ নীল আমি এটি করা বিবেচনা করেছিলাম, তবে এই বিপক্ষে সিদ্ধান্ত নিয়েছিলাম যে সামান্য লাভের জন্য এটি অসুবিধা আরও বাড়িয়ে তুলবে।
অ্যাডমবর্কবার্ক

এর রান মত দেখায় -/ |গুলি সূত্র অনুসরণ (2<<n)-n-2বদলে (1<<n)-1যা কি আমার মূল অনুমান হত।
নীল

@ নীল তারা আসলে ইউলরিয়ান সংখ্যা , যেহেতু এটি সর্বোত্তম নান্দনিক সরবরাহ করেছে।
অ্যাডমবর্কবার্ক

উত্তর:


9

জাভাস্ক্রিপ্ট (ES6), 204 195 188 180 বাইট

f=
_=>[...Array(9119)].map((_,i)=>~i%96?g(48+~(i/96),47-i%96,5):`
`,g=(x,y,z,n=(1<<z)-z)=>x|y?(x=x<0?-x:x)+(y=y<0?-y:y)<n?` |-+`[2*!x+!y]:z--?x>y?g(x-n,y,z):g(x,y-n,z):` `:`+`).join``
;document.write(`<pre>`+f())

স্কোয়ার স্পেস প্যাডিং, এলএফ লাইনফিডস এবং কোনও পিছনে থাকা নতুন লাইন নেই, যদিও আমি এমডি 5 পরীক্ষা করে দেখিনি।

f=
m=>[...Array((w=(4<<m)-m*-~m-2)*~-w)].map((_,i)=>~i%w?g(w/2+~(i/w),w/2-i%w-1,m):`
`,g=(x,y,z,n=(1<<z)-z)=>x|y?(x=x<0?-x:x)+(y=y<0?-y:y)<n?` |-+`[2*!x+!y]:z--?x>y?g(x-n,y,z):g(x,y-n,z):` `:`+`).join``
<input type=number min=0 oninput=o.textContent=f(this.value)><pre id=o>+

222 216 207 199 বাইটের জন্য প্যারাম্যাট্রিড সংস্করণ । ব্যাখ্যা: আউটপুট আকার 9119 ASCII অক্ষর, 46 টি নতুন লাইনের সহ। (প্যারামিট্রিসড সংস্করণের জন্য, আউটপুট আকারটি পেছনের নিউলাইন সহ গণনা করা হয়)) প্রতিটি অক্ষর পৃথকভাবে নির্ধারিত হয়, প্রথমদিকে একটি নতুন লাইন রয়েছে কিনা তা যাচাই করে, অন্যথায় ফাইনালের মধ্যবর্তী স্থানে স্থানাঙ্কগুলিতে কোনও ফাংশন কল করে ডায়াগ্রাম। ফাংশনটি প্রতিটি আকারের নিকটতম ক্রসের বিপরীতে বিন্দুটি পুনরাবৃত্তভাবে পরীক্ষা করে এবং ক্রসটির কেন্দ্র বা অক্ষের উপরে অবস্থিত বিন্দুটি আবিষ্কার হয় কিনা তার উপর নির্ভর করে উপযুক্ত চরিত্রটি প্রদান করে।


7

রোদা , 284 280 238 234 বাইট

{a=[1,-1]t=[]seq 1,95|t+=[" "]*95,_
f={|x,y,i,d|{s=[27,12,5,2,1][i]i++
a|{|j|{seq y,y+s*j|t[_][x]="|"f x,y+s*j,i,2-j}if[d!=2+j]}_
a|{|j|{seq x,x+s*j|t[y][_]="-"f x+s*j,y,i,3-j}if[d!=3+j]}_}if[i<5]
t[y][x]="+"}f 47,47,0,0
t|print _&""}

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

এটি একটি বেনামে ফাংশন। আমি সেমিকোলনের পরিবর্তে নিউলাইনগুলি ব্যবহার করেছি তাই এটি খুব সুন্দরভাবে ফর্ম্যাটেড!

পুনরাবৃত্ত ফাংশন fএকটি দ্বি-মাত্রিক অ্যারেতে গ্রাফ তৈরি করে t, যা পরে শেষ লাইনে মুদ্রিত হয়।

আমি 27,12,5,2,1কয়েকটি বাইটে গণনা করার কোনও উপায় খুঁজে পাইনি , সুতরাং এগুলি হার্ড-কোডড।


2 এর শক্তি গণনা করার কোনও উপায় নেই?
নীল

@ নীল একজন b_shiftlঅপারেটর উপস্থিত রয়েছে, তবে এই প্রোগ্রামটিতে ব্যবহার করা আমার পক্ষে অনেক দীর্ঘ long
ফার্গুসক

কেবলমাত্র আমি ভাবতে পারি সম্ভবত বেস -3? ডুনো রোড বেস রুপান্তরে কতটা ভাল যদিও ... 10000110001200020001-> 1168671727সন্দেহ আপনি হ'ল যদিও 2 বাইটের চেয়ে কম দিয়ে রূপান্তর করতে এবং বিভক্ত করতে পারেন ...
ম্যাজিক অক্টোপাস উরান

3

কাঠকয়লা , 50 43 বাইট

F³²⁴«P++↷AE…¹¦⁵∧¬﹪ιX³κ⁻X²⁺κ¹⁺κ²εF⁺ε⮌ε¿κ«+κ↶

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। আমি প্রথমে বিভিন্ন প্রতিচ্ছবি এবং ঘূর্ণন চেষ্টা করেছি কিন্তু তারা আমার যা চায় তা করেনি বা কিছু ক্ষেত্রে বগি ছিল। আমি তখন নেস্টেড লুপ পদ্ধতির চেষ্টা করেছি কিন্তু আমি এখন এই পুনরাবৃত্ত পদ্ধতিতে স্যুইচ করেছি যা প্রতিটি ধাপের সংখ্যার কতগুলি শক্তি দ্বারা বিভাজ্য তার উপর নির্ভর করে প্রতিটি অভ্যন্তরীণ ক্রসের মধ্যে বেশ কয়েকটি রেখা অঙ্কন করে কাজ করে। এমনকি মাত্র 4 বাইট ব্যয়ে একটি আকারের প্যারামিটার গ্রহণ করার জন্য এটি সহজেই সংশোধন করা যেতে পারে:

NβF×⁴X³β«P++↷AE…·¹β∧¬﹪ιX³κ⁻X²⁺κ¹⁺κ²εF⁺ε⮌ε¿κ«+κ↶

সম্পাদনা করুন: আমি তখন থেকে RotateShutterOverlapএই কাজটি অর্জন করতে কীভাবে ব্যবহার করব তা নিয়ে কাজ করেছি , তবে বিরক্তিজনকভাবে এটি আমার 44 বাইট লাগে:

A⁰ηF⁶«AηγA⁻⁺X²ιηιηJη⁰P-γ+¿γ⟲SO²⁶⁻×²γ¹»‖⟲SO⁹⁵

যদি RotateShutterOverlapকোনও পরিবর্তনশীল ঘূর্ণন পূর্ণসংখ্যার হিসাবে গৃহীত হয়, তবে এটি 40 বাইটে হ্রাস পাবে:

A⁰ηF⁶«A∨η¹γA⁻⁺X²ιηιηJη⁰P+γ+⟲SO⎇‹ι⁵Lβ²⁴⁶γ

যেমনটি, একটি ঘূর্ণন তালিকা পরামিতি ব্যবহার করে 45 বাইট লাগে:

A⁰ηF⁶«A∨η¹γA⁻⁺X²ιηιηJη⁰P+γ+⟲SO⟦⁶ײ⁺¹⁼⁵ι⟧⁻ײγ¹

এটি আমার কাছে প্রতারণার মতো অনুভব করে। : পি
হাইপারনিউটারিনো

@ হাইপারনিট্রিনো সামান্য কম হার্ডকডযুক্ত সংস্করণ: এটি অনলাইনে চেষ্টা করুন! বা আপনি কি বোঝাতে চেয়েছিলেন তা নয়?
নীল

: পিআই মানে
কাঠকয়ালের

@ নীল: হে এটি আশ্চর্যজনক! আমি ভাবছি আপনি যদি বগি প্রতিবিম্ব / ঘূর্ণনের উদাহরণ দিতে পারেন তবে আমি এটি ঠিক করতে পারি
ASCII-

@ এএসসিআইআই-কেবল বগি প্রতিবিম্বের ক্ষেত্রে, আমি মনে করি যে কেবল একটি তির্যক প্রতিচ্ছবি কাজ করছে, তবে কোনটি মনে করতে পারছি না। আমি মনে করি ত্রুটিটি একটি অনির্ধারিত পরিবর্তনশীল (সম্ভবত খুব বেশি কোপাইপাস্টা) ছিল।
নিল

2

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

•1dOœ˜‘Av–Qs†ƒFã&äuÌʹÝ2býádÙI’´Ëœ¼)Y»+™ß›[Vg“Ò¢Jù1no<V<*Ét*-¢&â-ßBÆ×090`11-øsµ–¶1VÛ==ü:¼÷ØûÍZ„æ¹=#ùÞV«¡fä&Έ'ëˆÝ=ä^‰¤?Êçù!ØèØr-3îÛ+êò‚û¢½°BéG¦U”Ü1žˆr6S‹“ŽKRK°A¹ª¿â9]}×u¬]ž„Îï›V¦Â¶4Ãï¢v£×é´Ü2Äžiqô>§17F*ÎañníÆ4]s8mÏ›HSÏ771í´‰d3´Þ|À]Uà{þñýqø’e„XÿF4–:Yl&uqžÍÒÿ¾u9¤jóHP‰çêoÒNŠX-°xpÒÿ*ejÏD0Ë+GnÊ-/§3ÜJÙˆƒÌ=ŒÒOX‰|O%wæ[n‹ã4)ôF+~´Ö{aÄ$(Þí¼”÷u–qÿBòfÂíÜìTó–xÝwû¾])<§O«\‚e°‡¾‹K…ZDPô;µ!ò&Ô¼¨1gŠ—Ÿ¦©zW¢¾×4K±ÔÄ_ìûÄ‚3¶Ñ>‚bùn±œ×)ÙCâRö裶”ˆ1ßÑֱͮ[ZéRïyÓxÓE¨cW˜{Ã’ùoE›¥ÚvA¨‹êÆýÑY½RÎ5´‘Ê™uåÄr"ãYð÷I!0¤)å‡ëž”>úèWò}é€@.ØñÈQ€ñ{Á„‘Ü’‰~Çñ=…|“ڃĬcóÇkþÛÇ–š;{¡¦½ÕrÎé–àTz€Kì2à^|¢èˆÎxž“å$œ2ô»EidœþFrSS¥ÝÜ—X¡á~îþQ˜NÜGñ¥Q)aè•4B"1230"" +-|"‡48ôû€û»

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

আমি সমস্তই প্যাটার্নটি চতুর্থ অংশে কাটা হয়েছিল, প্রতীকগুলিকে বেস -4 এ রূপান্তরিত করেছি, প্যাটার্নের 1/4 টি বেস -214 এ সংকুচিত করে এবং পরে এটি প্রতিসাম্যের লাইনগুলিতে উল্টিয়েছি। আমি আসল অ্যালগরিদম ব্যবহার করে স্মার্ট কিছু নিয়ে কাজ করছি, তবে যতক্ষণ না শেষ করছি এটি আমার জন্য এখানেই থাকবে।


4
এটি এখন পর্যন্ত সবচেয়ে বড় 05AB1Eউত্তর আমি দেখেছি। xD সাধারণত এই ভাষায় উত্তরগুলির সাথে 620 এর পরিবর্তে 6.20 এর কাছাকাছি। ;)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন যদি এটি পুনরাবৃত্তির জন্য জিজ্ঞাসা করত 4 তবে এটি অনেকটা ছোট হাহা হত। এখনও 05AB1E তে আসল অ্যালগরিদমে কাজ করছি ... আমার ধারণা থেকে আরও শক্ত
ম্যাজিক অক্টোপাস উরান

2

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

def F(g,p,d,k):
 for c in'-|'[d.real!=0]*(2**k-k-1):g[p]=c;p+=d
 P(g,p,k-1)
def P(g,p,k):
 if'+'==g.setdefault(p,'+')and k:
  for d in[1,1j,-1,-1j]:F(g,p+d,d,k)
g={}
P(g,0j,5)
print('\n'.join(''.join(g.get(r+c*1j,' ')for c in range(-47,48))for r in range(-47,48)))

পারস্পরিক পুনরাবৃত্তি ফাংশন একজোড়া ব্যবহার করে। এফ লাইনগুলি আঁকেন এবং পি '+' এর সন্নিবেশ করান। আরও গল্ফ করা যেতে পারে তবে আপাতত সময়ের বাইরে।


1

সি, 236 বাইট

char t[95][95],i=95;f(x,y,s,n,m){if(t[y][x]<33){m=~s+(1<<s);for(n=~m;n++<m;)t[y][x+n]='-',t[y+n][x]=n==0?'+':'|';if(s--)f(x+n,y,s),f(x-n,y,s),f(x,y+n,s),f(x,y-n,s);}}main(){memset(t,32,9025);f(47,47,5);while(i--)printf("%.95s\n",t[i]);}

চরিত্রের টেবিলটি প্রদর্শিত হওয়ার আগে পুনরাবৃত্তভাবে তৈরি করা।

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

আমাকে অনুধাবন করার জন্য @ নীল ধন্যবাদ যে শাখাগুলির দৈর্ঘ্য একটি প্রকৃত নিয়ম অনুসরণ করে।

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