এএসসিআইআই ড্রাগনের কার্ভ


26

ভূমিকা

ড্রাগন এর কার্ভ একটি ফ্র্যাক্টাল বক্ররেখা যে উল্লেখযোগ্য উপর জুরাসিক পার্ক উপন্যাসের অধ্যায় শিরোনাম পৃষ্ঠাগুলি প্রদর্শিত হবে হয়।

এটিকে খুব সহজেই কাগজের স্ট্রিপ ভাঁজ করার প্রক্রিয়া হিসাবে বর্ণনা করা যেতে পারে, যেমন এই বক্রতা সম্পর্কে উইকিপিডিয়া নিবন্ধে ব্যাখ্যা করা হয়েছে।

এই বক্ররেখার প্রজন্মের প্রথম কয়েকটি পুনরাবৃত্তিগুলি দেখতে দেখতে (চিত্রটির জন্য উইকিপিডিয়ায় ক্রেডিট):

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

চ্যালেঞ্জ

একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইনপুট হিসাবে একটি পূর্ণসংখ্যা n দেওয়া হয়, কেবলমাত্র প্রতীক ব্যবহার করে ড্রাগন কার্ভের N-th পুনরাবৃত্তিটি ASCII আর্ট হিসাবে আউটপুট দেয় _এবং|

  • আপনাকে কেবল |, _এবং স্পেসগুলি ব্যবহার করে চিত্রটি আউটপুট করতে হবে । আপনি কার্ভটিকে প্লট বা অন্য কিছু হিসাবে আউটপুট নাও দিতে পারেন।
  • আপনি ইনপুটটিকে প্রোগ্রাম আর্গুমেন্ট হিসাবে, STDIN এ বা কোনও ফাংশন প্যারামিটার হিসাবে নিতে পারেন।
  • ইনপুটগুলি সর্বদা একটি পূর্ণসংখ্যক> = 0. হবে আপনার প্রোগ্রামটি ইনপুটগুলির যুক্তিসঙ্গত মানগুলির জন্য কাজ করা উচিত, যা দেওয়া টেস্টের ক্ষেত্রে 12 সবচেয়ে বেশি।
  • প্রথম পুনরাবৃত্তিগুলি এর মতো দেখাবে

    • Iteration 0 হয়

      _
      
    • Iteration 1 হয়

      _|
      
    • Iteration 2 হয়

      |_ 
       _|
      
  • শেষে একটি পিছনের লাইন ঠিক আছে। বক্ররেখার ডানদিকের অক্ষর পর্যন্ত লাইনটি পূরণ করার পাশাপাশি কোনও অনুসরণযোগ্য স্থানের অনুমতি নেই

  • যথারীতি কোনও স্ট্যান্ডার্ড ফাঁক নেই

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

  • ইনপুট 0

আউটপুট

_
  • ইনপুট 3

আউটপুট

   _   
|_| |_ 
     _|
  • ইনপুট 5

আউটপুট

     _   _   
    |_|_| |_ 
 _   _|    _|
|_|_|_       
  |_|_|      
    |_       
     _|      
  |_|        
  • ইনপুট 10

আউটপুট

           _       _                                           
         _|_|    _|_|                                          
        |_|_   _|_|_   _                                       
         _|_|_| |_| |_|_|                                      
   _    |_|_|_        |_                                       
 _|_|    _| |_|        _|                                      
|_|_   _|_          |_|                                        
 _|_|_|_|_|_                                                   
|_| |_|_|_|_|_                                                 
     _|_|_| |_|                                                
    |_| |_                                                     
         _|_   _   _           _   _           _   _           
   _    |_|_|_|_|_|_|_        |_|_|_|_        |_|_|_|_         
 _|_|    _|_|_|_|_| |_|    _   _|_| |_|    _   _|_| |_|        
|_|_   _|_|_|_|_|_        |_|_|_|_        |_|_|_|_             
 _|_|_|_|_|_|_|_|_|_   _   _|_|_|_|_   _   _|_|_|_|_   _   _   
|_| |_|_|_| |_|_|_| |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_ 
     _|_|    _|_|    _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|
    |_|     |_|     |_| |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_     
                         _|_|_|_|_|_|_|_|_|_|_| |_| |_|_|_|_   
                   _    |_|_|_|_|_|_|_|_|_|_|_        |_|_|_|_ 
                 _|_|    _|_|_|_|_|_|_|_|_| |_|    _   _|_| |_|
                |_|_   _|_|_|_|_|_|_|_|_|_        |_|_|_|_     
                 _|_|_|_|_|_|_|_|_|_|_|_|_|_        |_| |_|    
                |_| |_|_|_| |_|_|_| |_|_|_|_|_                 
                     _|_|    _|_|    _|_|_| |_|                
                    |_|     |_|     |_| |_                     
                                         _|_   _   _           
                                   _    |_|_|_|_|_|_|_         
                                 _|_|    _|_|_|_|_| |_|        
                                |_|_   _|_|_|_|_|_             
                                 _|_|_|_|_|_|_|_|_|_   _   _   
                                |_| |_|_|_|_|_|_|_|_|_|_|_|_|_ 
                                     _|_|_|_|_|_|_|_|_|_|_| |_|
                                    |_| |_|_|_|_|_|_|_|_|_     
               _   _                     _|_|_| |_| |_|_|_|_   
              |_|_| |_             _    |_|_|_        |_|_|_|_ 
           _   _|    _|          _|_|    _| |_|    _   _|_| |_|
          |_|_|_                |_|_   _|_        |_|_|_|_     
            |_|_|                _|_|_|_|_|_        |_| |_|    
              |_   _       _    |_|_|_|_|_|_|_                 
           _   _|_|_|    _|_|    _|_|_|_|_| |_|                
          |_|_|_|_|_   _|_|_   _|_|_|_|_|_                     
            |_| |_| |_|_|_|_|_| |_| |_|_|_|_                   
                      |_|_|_|_        |_|_|_|_                 
                   _   _|_| |_|    _   _|_| |_|                
                  |_|_|_|_        |_|_|_|_                     
                    |_| |_|         |_| |_|                    
  • ইনপুট 12

আউটপুট

                                                               _   _           _   _                                           _   _           _   _                                           
                                                              |_|_|_|_        |_|_|_|_                                        |_|_|_|_        |_|_|_|_                                         
                                                           _   _|_| |_|    _   _|_| |_|                                    _   _|_| |_|    _   _|_| |_|                                        
                                                          |_|_|_|_        |_|_|_|_                                        |_|_|_|_        |_|_|_|_                                             
                                                            |_|_|_|_   _   _|_|_|_|_   _   _                                |_|_|_|_   _   _|_|_|_|_   _   _                                   
                                                              |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_                                |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_                                 
                                                           _   _|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|                            _   _|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|                                
                                                          |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_                                |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_                                     
                                               _   _        |_|_|_|_|_|_|_|_|_| |_| |_|_|_|_                   _   _        |_|_|_|_|_|_|_|_|_| |_| |_|_|_|_                                   
                                              |_|_|_|_        |_|_|_|_|_|_|_|_        |_|_|_|_                |_|_|_|_        |_|_|_|_|_|_|_|_        |_|_|_|_                                 
                                           _   _|_| |_|    _   _|_|_|_|_|_| |_|    _   _|_| |_|            _   _|_| |_|    _   _|_|_|_|_|_| |_|    _   _|_| |_|                                
                                          |_|_|_|_        |_|_|_|_|_|_|_|_        |_|_|_|_                |_|_|_|_        |_|_|_|_|_|_|_|_        |_|_|_|_                                     
                                            |_|_|_|_   _   _|_|_|_|_|_|_|_|_        |_| |_|                 |_|_|_|_   _   _|_|_|_|_|_|_|_|_        |_| |_|                                    
                                              |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_                                |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_                                                 
                                           _   _|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|                            _   _|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|                                                
                                          |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_                                |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_                                                     
                                            |_| |_| |_|_|_|_|_|_|_|_|_|_|_|_   _   _           _   _        |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_   _   _           _   _           _   _           
                                                      |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_        |_|_|_|_        |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_        |_|_|_|_        |_|_|_|_         
                                                   _   _|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|    _   _|_| |_|    _   _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|    _   _|_| |_|    _   _|_| |_|        
                                                  |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_        |_|_|_|_        |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_        |_|_|_|_        |_|_|_|_             
                                                    |_| |_| |_|_|_|_|_|_|_|_|_|_|_|_   _   _|_|_|_|_   _   _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_   _   _|_|_|_|_   _   _|_|_|_|_   _   _   
                                                              |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|_|_| |_|_|_|_|_|_|_|_|_|_|_| |_|_|_| |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_ 
                                                           _   _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|    _|_|    _|_|_|_|_|_|_|_|_|_|    _|_|    _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|
                                                          |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_    |_|     |_| |_|_|_|_|_|_|_|_    |_|     |_| |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_     
                                               _   _        |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|                _|_|_|_|_|_|_|_|                _|_|_|_|_|_|_|_|_|_|_| |_| |_|_|_|_   
                                              |_|_|_|_        |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|_           _    |_|_|_|_|_| |_|_           _    |_|_|_|_|_|_|_|_|_|_|_        |_|_|_|_ 
                                           _   _|_| |_|    _   _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|    _|_|        _|_|    _|_|_|_|    _|_|        _|_|    _|_|_|_|_|_|_|_|_| |_|    _   _|_| |_|
                                          |_|_|_|_        |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_    |_|         |_|_   _|_|_|_|_    |_|         |_|_   _|_|_|_|_|_|_|_|_|_        |_|_|_|_     
                                            |_|_|_|_   _   _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|                _|_|_|_|_|_|_|_|                _|_|_|_|_|_|_|_|_|_|_|_|_|_        |_| |_|    
                                              |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_   _            |_| |_|_|_| |_|_                |_| |_|_|_| |_|_|_| |_|_|_|_|_                 
                                           _   _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|                _|_|    _|_|                    _|_|    _|_|    _|_|_| |_|                
                                          |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_   _            |_|     |_|                     |_|     |_|     |_| |_                     
                                            |_| |_| |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|                                                                _|_   _   _           
                                                      |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| |_|_                                                           _    |_|_|_|_|_|_|_         
                                                   _   _|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|    _|_|                                                        _|_|    _|_|_|_|_| |_|        
                                                  |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_    |_|                                                         |_|_   _|_|_|_|_|_             
                                                    |_| |_| |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|                                                                _|_|_|_|_|_|_|_|_|_   _   _   
           _       _                                          |_|_|_|_|_|_| |_|_|_| |_|_|_|_|_|_   _                                                            |_| |_|_|_|_|_|_|_|_|_|_|_|_|_ 
         _|_|    _|_|                                      _   _|_|_|_|_|    _|_|    _|_|_|_|_|_|_|_|                                                                _|_|_|_|_|_|_|_|_|_|_| |_|
        |_|_   _|_|_   _                                  |_|_|_|_|_|_|_    |_|     |_| |_|_|_|_|_|_   _                                                            |_| |_|_|_|_|_|_|_|_|_     
         _|_|_| |_| |_|_|                      _   _        |_|_|_|_|_|_|                _|_|_|_|_|_|_|_|                                      _   _                     _|_|_| |_| |_|_|_|_   
   _    |_|_|_        |_                      |_|_|_|_        |_|_| |_|_           _    |_|_|_|_|_| |_|_                                      |_|_| |_             _    |_|_|_        |_|_|_|_ 
 _|_|    _| |_|        _|                  _   _|_| |_|    _   _|    _|_|        _|_|    _|_|_|_|    _|_|                                  _   _|    _|          _|_|    _| |_|    _   _|_| |_|
|_|_   _|_          |_|                   |_|_|_|_        |_|_|_    |_|         |_|_   _|_|_|_|_    |_|                                   |_|_|_                |_|_   _|_        |_|_|_|_     
 _|_|_|_|_|_                                |_|_|_|_   _   _|_|_|                _|_|_|_|_|_|_|_|                                           |_|_|                _|_|_|_|_|_        |_| |_|    
|_| |_|_|_|_|_                                |_|_|_|_|_|_|_|_|_   _            |_| |_|_|_| |_|_                                              |_   _       _    |_|_|_|_|_|_|_                 
     _|_|_| |_|                            _   _|_|_|_|_|_|_|_|_|_|_|                _|_|    _|_|                                          _   _|_|_|    _|_|    _|_|_|_|_| |_|                
    |_| |_                                |_|_|_|_|_|_|_|_|_|_|_|_|_   _            |_|     |_|                                           |_|_|_|_|_   _|_|_   _|_|_|_|_|_                     
         _|_   _   _           _   _        |_|_|_|_|_|_|_|_|_|_|_|_|_|_|                                                                   |_| |_| |_|_|_|_|_| |_| |_|_|_|_                   
   _    |_|_|_|_|_|_|_        |_|_|_|_        |_|_|_|_|_|_|_|_|_|_| |_|_                                                                              |_|_|_|_        |_|_|_|_                 
 _|_|    _|_|_|_|_| |_|    _   _|_| |_|    _   _|_|_|_|_|_|_|_|_|    _|_|                                                                          _   _|_| |_|    _   _|_| |_|                
|_|_   _|_|_|_|_|_        |_|_|_|_        |_|_|_|_|_|_|_|_|_|_|_    |_|                                                                           |_|_|_|_        |_|_|_|_                     
 _|_|_|_|_|_|_|_|_|_   _   _|_|_|_|_   _   _|_|_|_|_|_|_|_|_|_|_|                                                                                   |_| |_|         |_| |_|                    
|_| |_|_|_| |_|_|_| |_|_|_|_|_|_|_|_|_|_|_| |_|_|_| |_|_|_|_|_|_   _                                                                                                                           
     _|_|    _|_|    _|_|_|_|_|_|_|_|_|_|    _|_|    _|_|_|_|_|_|_|_|                                                                                                                          
    |_|     |_|     |_| |_|_|_|_|_|_|_|_    |_|     |_| |_|_|_|_|_|_   _                                                                                                                       
                         _|_|_|_|_|_|_|_|                _|_|_|_|_|_|_|_|                                                                                                                      
                   _    |_|_|_|_|_| |_|_           _    |_|_|_|_|_| |_|_                                                                                                                       
                 _|_|    _|_|_|_|    _|_|        _|_|    _|_|_|_|    _|_|                                                                                                                      
                |_|_   _|_|_|_|_    |_|         |_|_   _|_|_|_|_    |_|                                                                                                                        
                 _|_|_|_|_|_|_|_|                _|_|_|_|_|_|_|_|                                                                                                                              
                |_| |_|_|_| |_|_                |_| |_|_|_| |_|_                                                                                                                               
                     _|_|    _|_|                    _|_|    _|_|                                                                                                                              
                    |_|     |_|                     |_|     |_|                                                                                                                                

স্কোরিং

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতে।


আমি নিশ্চিত যে কেউ 'বিপুল পরিমাণ স্পেস' এর অস্পষ্টতা সম্পর্কে অভিযোগ করবে, তাই অ্যাসিপটোটিকের সীমা সম্পর্কে কীভাবে?
শুক্রবার 12'15

1
@ ফেয়ারসাম ওয়েল, আমি পুরোপুরি পিছনে থাকা স্থানকে মঞ্জুরি দিয়েছি, এখন কেউই অভিযোগ করবে না!
মারাত্মক করুন

2
আমি অভিযোগ করছি ... এখন আপনি একটি সাদা স্থান নাজি হয়ে যাচ্ছেন!
ফেয়ারসাম

@ ফেয়ারসাম এবং আপনি একটি অনুভূমিক উপবৃত্তাকার নাজি!
অপ্টিমাইজার

এটি সর্বকালের সেরা ফ্র্যাক্টাল প্রশ্ন, আমি আশা করি আমার অংশ নেওয়ার সময় হবে! 90,180,270 ডিগ্রি বক্ররেখাটি ঘোরানো ঠিক আছে বা উদাহরণ হিসাবে এটি প্রদর্শিত হবে?
স্তর নদী সেন্ট

উত্তর:


9

রুবি, 239 201 বাইট

এটি একটি ল্যাম্বডা ফাংশন যা একে বর্ণহীন সংস্করণের মতো একইভাবে ডাকা উচিত।

গল্ফিংয়ের উন্নতির মধ্যে রয়েছে: 8<<n/2পুনরায় ব্যবহারের জন্য একটি পরিবর্তনশীলকে নিয়োগ ; uptoলুপের পরিবর্তে eachলুপ; পরিবর্তে টার্নারি অপারেটর if..else..end; [y,y+=d].maxকোথায় মুদ্রণ করতে হবে তা গণনা করতে ব্যবহার |; ব্যবহারের ?_এবং ?|সমতুল্য পরিবর্তে '|'এবং '_'; এবং অপ্রয়োজনীয় নির্মূল %4(ধন্যবাদ Sp3000।)

->n{a=Array.new(m=8<<n/2){" "*m}
p=q=1+x=y=m/2
r=3
1.upto(1<<n){|i|d=(r&2)-1
r%2>0?(a[y][x+=d]=?_
x+=d):(a[[y,y+=d].max][x]=?|
p=x<p ?x:p
q=x>q ?x:q)
r+=i/(i&-i)}
a.delete(a[0])
puts a.map{|e|e[p..q]}}

এটি উইকিপিডিয়া থেকে নিম্নলিখিত সূত্র উপর নির্ভর করে:

প্রথমে কে * (2 ^ মি) আকারে এন প্রকাশ করুন যেখানে কে বিজোড় সংখ্যা। নবম টার্নের দিকনির্দেশ কে মড 4 দ্বারা নির্ধারিত হয় অর্থাৎ বাকি 4 টি কে দ্বারা 4 দ্বারা বিভক্ত হয়ে গেলে বাকী বামে থাকে যদি কে মোড 4 হয় তবে নবম টার্নটি আর হয়; যদি কে মোড 4 3 হয় তবে নবম টার্নটি এল is

উইকিপিডিয়া নিম্নলিখিত কোড দেয়:

কোডে টার্নের দিকটি সন্ধান করার জন্য উপরের কে মোড 4 পদ্ধতি বাস্তবায়নের জন্য একটি সহজ এক লাইন অ-রিকার্সিভ পদ্ধতি রয়েছে। টার্ন এনকে বাইনারি সংখ্যা হিসাবে ধরে চিকিত্সা করা হচ্ছে, নিম্নলিখিত বুলিয়ান মান গণনা করুন: bool turn = (((n & −n) << 1) & n) != 0

আমি এটিকে উন্নত করেছি i/(i&-i)%4যা i&-iসর্বনিম্ন উল্লেখযোগ্য অঙ্ক সন্ধান করতে এক্সপ্রেশনটি ব্যবহার করার একই কৌশলটি ব্যবহার করে তবে আমার অভিব্যক্তিটি 1 (বাম দিকে ঘুরানোর জন্য) বা 3 (ডান দিকে ঘোরার জন্য) সরাসরি দেয়, যা আমি একটি সংখ্যার মতো দিক ট্র্যাক করার মতো হ'ল 0..3(মধ্যে গল্ফিং কারণে উত্তর, পশ্চিম, দক্ষিণ, পূর্ব অর্ডার করুন))

পরীক্ষামূলক প্রোগ্রামে অসম্পূর্ণ মূল

f=->n{
  a=Array.new(8<<n/2){" "*(8<<n/2)}  #Make an array of strings of spaces of appropriate size 
  p=q=1+x=y=4<<n/2                   #set x&y to the middle of the array, p&q to the place where the underscore for n=0 will be printed.                             
  r=3                                #direction pointer, headed East
  (1..1<<n).each{|i|                 #all elements, starting at 1
    d=(r&2)-1                          #d is +1 for East and South, -1 for West and North
    if r%2>0                           #if horizontal
      a[y][x+=d]='_'                     #move cursor 1 position in direction d, print underscore,
      x+=d                               #and move again.
    else                               #else vertical
      a[(y+([d,0].max))][x]='|'          #draw | on the same line if d negative, line below if d positive
      y+=d                               #move cursor
      p=x<p ?x:p                         #update minimum and maximum x values for whitespace truncation later
      q=x>q ?x:q                         #(must be done for vertical bars, to avoid unnecesary space in n=0 case)
    end
    r=(r+i/(i&-i))%4                   #update direction
  }
  a.delete(a[0])                     #first line of a is blank. delete all blank lines.
  puts a.map!{|e|e[p..q]}                 #use p and q to truncate all strings to avoid unnecessary whitespace to left and right.
}


f.call(0)
f.call(2)
f.call(3)
f.call(11)

@ ফ্যাটালাইজ করুন উভয় ফাংশন (বর্তমানে) অভিন্ন (মন্তব্য এবং সাদা জায়গা ছাড়া) আমি মান (+5 বাইট) ফেরতের পরিবর্তে স্টাডাউটে মুদ্রণ যুক্ত করেছি এবং f=শুরুতে মুছে ফেলেছি কারণ এটি সাধারণত কোনও বেনামের জন্য গণনা করা হয় না ফাংশন সংজ্ঞা (-2 বাইট।) আগামীকাল আরও গল্ফিং। নোট করুন যে আপনাকে এখনও গল্ফযুক্ত ফাংশনটি কার্যকর করতে হবে, এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করে f=->n{.....}এবং f.call(n)পরীক্ষার প্রোগ্রামের উদাহরণ হিসাবে এটি কল করে ।
স্তরের নদী সেন্ট

1
@ ফ্যাটালাইজ বিটিডাব্লু আমার মনে হয় ফ্র্যাকটালটি আমার কনসোলে একেবারে দুর্দান্ত দেখাচ্ছে। চ্যালেঞ্জের জন্য ধন্যবাদ।
স্তরের নদী সেন্ট

@ Sp3000 আসলেই %4প্রয়োজনীয় নয়, যেমনটি rকেবলমাত্র অভিব্যক্তিতে ব্যবহৃত হয় r%2এবং r&2। ভকভগক. আমি এখন ২০২
লেভেল রিভার সেন্ট

8

পাইথন 2, 270 222 বাইট

y=X=Y=0
i=m=x=1
D={}
k=2**input()
while~k+i:j=Y+(y>0);s={2*X+x};D[j]=D.get(j,s)|s;m=min(m,*s);Y+=y;X+=x;exec i/(i&-i)*"x,y=y,-x;";i+=1
for r in sorted(D):print"".join(" | _"[(n in D[r])+n%2*2]for n in range(m,max(D[r])+1))

এখন নবম টার্নের সূত্র ব্যবহার করে। আমি (((n & −n) << 1) & n)উইকিপিডিয়ায় সূত্রটি দেখেছি , তবে @ স্টিভেরিলের উত্তরে আমি এটি না পাওয়া পর্যন্ত এটি কতটা কার্যকর তা বুঝতে পারি নি । আমি আসলে %4পাশাপাশি ফেলেছি , তাই প্রচুর পরিমাণে ঘুরছে, বড় ইনপুটগুলিকে কিছুটা সময় নিতে হবে।


পার্শ্ব মন্তব্য: এটি গ্রাফিকাল আউটপুট নয়, তবে এখানে কিছু গল্ফ টার্টাল কোড রয়েছে:

from turtle import*
for i in range(1,2**input()+1):fd(5);lt(i/(i&-i)*90)

যতক্ষণ দৌড়াতে এক ঘন্টা সময় নেয় না,
ততক্ষণ

আমি যদি সঠিকভাবে বুঝতে পারি তবে আপনার দ্বিতীয় কোডটি এই চ্যালেঞ্জের উত্তর হয়ে উঠতে খুব সামান্য পরিবর্তন করা যেতে পারে ।
nedla2004

3

সি #, 337 বাইট

এখানে বেশ কয়েকটি বিধিবিধানের অপব্যবহার রয়েছে। শীর্ষস্থানীয় স্থানের ক্ষেত্রে কোনও বাধা নেই। দুর্ভাগ্যক্রমে, ক্যানভাস সীমাবদ্ধ, সুতরাং n এর জন্য একটি উচ্চতর সীমা রয়েছে ।

স্বচ্ছতার জন্য যুক্ত

using C=System.Console;
class P{
    static void Main(string[]a){
        int n=int.Parse(a[0]),d=2,x=250,y=500;
        var f="0D";
        while(n-->0)
            f=f.Replace("D","d3t03").Replace("T","10d1t").ToUpper();
        C.SetBufferSize(999,999);
        foreach(var c in f){
            n=c&7;
            d=(d+n)%4;
            if(n<1){
                var b=d%2<1;
                x+=n=b?1-d:0;
                y+=b?0:2-d;
                C.SetCursorPosition(x*2-n,y+d/3);
                C.Write(b?'_':'|');
            }
        }
    }
}

1

জাভাস্ক্রিপ্ট (ES6), 220

বাম এবং ডান মোড়ের জন্য উইকিপিডিয়া সূত্র ব্যবহার করে।

n=>(d=>{for(i=x=y=d;i<1<<n;d+=++i/(i&-i))z=d&2,(w=d&1)?y+=z/2:x+=1-z,g=x<0?g.map(r=>[,,...r],x=1):g,g=y<0?[y=0,...g]:g,r=g[y]=g[y]||[],r[x]='_|'[w],w?y-=!z:x+=1-z})(0,g=[])||g.map(r=>[...r].map(c=>c||' ').join``).join`
`

কম গল্ফড

n=>{
  g=[];
  for(i=x=y=d=0;i<1<<n;d+=++i/(i&-i))
    z=d&2,
    (w=d&1)?y+=z/2:x+=1-z,
    g=x<0?g.map(r=>[,,...r],x=1):g,
    g=y<0?[y=0,...g]:g,
    r=g[y]=g[y]||[],
    r[x]='_|'[w],
    w?y-=!z:x+=1-z
  return g.map(r=>[...r].map(c=>c||' ').join``).join`\n`
}

F=
n=>(d=>{for(i=x=y=d;i<1<<n;d+=++i/(i&-i))z=d&2,(w=d&1)?y+=z/2:x+=1-z,g=x<0?g.map(r=>[,,...r],x=1):g,g=y<0?[y=0,...g]:g,r=g[y]=g[y]||[],r[x]='_|'[w],w?y-=!z:x+=1-z})(0,g=[])||g.map(r=>[...r].map(c=>c||' ').join``).join`
`

function update() {
  var n=+I.value
  O.textContent=F(n)
}

update()
pre { font-size: 8px }
<input id=I value=5 type=number oninput='update()'><pre id=O></pre>


1

এপিএল (ডায়ালগ ইউনিকোড) , 65 64 বাইট এসবিসিএস

('_|'⍴⍨≢a)@a⍴∘''1+⌈/a←(⊢-⌊/)⌈2+/÷∘¯2 1¨11 9∘○¨+\0,(⊢,0j1×⌽)⍣⎕,1

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

(⊢,0j1×⌽)⍣⎕,1জটিল সংখ্যা হিসাবে পদক্ষেপের একটি তালিকা তৈরি করে। এটি থেকে 1বার বার শুরু হয় ( ,) বিপরীত ( ) বিপরীতে ( ) অনুলিপি 0j1= স্কয়ার্ট (-1) দ্বারা গুণিত ।

+\0, 0 এবং গণনা উপসর্গের যোগফলগুলি প্রিপেন্ড করুন

11 9∘○¨ জটিলগুলি (বাস্তব; কাল্পনিক) জোড়গুলিতে বিভক্ত করুন

÷∘¯2 1¨ আসল অংশগুলি -2 দ্বারা ভাগ করুন

2+/ সংলগ্ন জোড়া যোগফল

ছাদ

(⊢-⌊/) সবার থেকে মিনিমা বিয়োগ করুন, যাতে কর্ডগুলি অ-নেতিবাচক থাকে

a← ধার্য a

⍴∘''⊃1+⌈/ একটি খালি চর ম্যাট্রিক্স তৈরি করুন যাতে সর্বোচ্চ কর্ডগুলি ফিট করতে পারে

('_|'⍴⍨≢a)@aপর্যায়ক্রমে _এবং |থেকে স্থানাঙ্কে রাখাa

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