একটি সিয়ারপিনস্কি ত্রিভুজ আঁকুন


43

সিয়েরপিনস্কি ট্রায়াঙ্গল একটি ফ্র্যাক্টাল যা ত্রিভুজটি নিয়ে তৈরি করে, উচ্চতা এবং প্রস্থকে 1/2 দ্বারা হ্রাস করে, ফলস্বরূপ ত্রিভুজের 3 অনুলিপি তৈরি করে এবং এ জাতীয় প্রতিটি ত্রিভুজকে অন্য একটি কোণে স্পর্শ করে রাখে। নীচে চিত্রিত হিসাবে সিয়েরপিনস্কি ত্রিভুজটি তৈরি করতে ফলস্বরূপ ত্রিভুজগুলির সাথে এই প্রক্রিয়াটি বারবার পুনরাবৃত্তি হয়।

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

সিয়েরপিনস্কি ত্রিভুজ তৈরি করতে একটি প্রোগ্রাম লিখুন। প্রকৃত ত্রিভুজগুলি অঙ্কন করে বা ছবিটি তৈরি করতে এলোমেলোভাবে অ্যালগরিদম ব্যবহার করে আপনি প্যাটার্নটি উত্পন্ন করতে যে কোনও পদ্ধতি ব্যবহার করতে পারেন। আপনি পিক্সেল, এসকিআই আর্ট বা আপনি যা খুশি তে আঁকতে পারবেন, যতক্ষণ না আউটপুট উপরের চিত্রের শেষ চিত্রের মতো দেখায়। সবচেয়ে কম অক্ষর জিততে পারে।


1
আরও দেখুন পুরাতন স্ট্যাক ওভারফ্লো সংস্করণ: stackoverflow.com/questions/1726698/...
dmckee

3
পাস্কেলের ত্রিভুজ প্রশ্নটি দেখে এবং আমার টিআই--manual ম্যানুয়ালটিতে এটির জন্য উদাহরণ প্রোগ্রামটি মনে করার পরে আমি এইটির জন্য ধারণা পেয়েছি। আমি এটিকে কিউব্যাসিক এবং তারপরে কোড গল্ফ রূপান্তর করার সিদ্ধান্ত নিয়েছি।
কিবিবে

এখানে ইতিমধ্যে স্ট্যাক ওভারফ্লোতে চালানো কোনও চ্যালেঞ্জ চালাতে কোনও সমস্যা নেই, তবে অনেক লোক আবার একই উপাদানটি উপস্থাপন করতে চাইবে না। তাই আমি তাদের পরবর্তী দর্শকদের উন্নয়নের জন্য লিঙ্ক করি।
ডিএমকেকে

সদৃশ এড়ানোর জন্য, কেবলমাত্র গ্রাফিকাল বাস্তবায়নের অনুমতি দেওয়ার জন্য আপনার বিধি পরিবর্তন করা উচিত।
প্রিমো

উত্তর:


41

এইচটিএমএল + জাভাস্ক্রিপ্ট, 150 টি অক্ষর (126 টি অক্ষরের জন্য নোট দেখুন)

পাঠযোগ্যতার জন্য সাদা স্থান sertedোকানো হয়েছে এবং গণনা করা হয়নি।

<title></title><canvas></canvas><script>
for(x=k=128;x--;)for(y=k;y--;)
  x&y||document.body.firstChild.getContext("2d").fillRect(x-~y/2,k-y,1,1)
</script>

এর মূলটি পিক্সেল রঙ করার নিয়ম প্রয়োগ করছে যার জন্য x & y == 0শর্তাধীন x&y||, যা একটি "সিয়ারপিনস্কি ডান ত্রিভুজ" উত্পাদন করে; এবং x-~y/2,k-yআনুমানিক সমতুল্য প্রদর্শন উত্পাদন করার জন্য একটি সমন্বিত রূপান্তর are

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

একটি কম সঠিক (এইচটিএমএল অনুসারে) সংস্করণটি 126 টি অক্ষর:

<canvas><script>
for(x=k=128;x--;)for(y=k;y--;)
  x&y||document.body.firstChild.getContext("2d").fillRect(x-~y/2,k-y,1,1)
</script>

(এটি যেভাবে কম কম সঠিক তা হ'ল এটি titleউপাদানটির উপাদান এবং শেষ ট্যাগটি বাদ দেয় canvas, উভয়ই সঠিক নথির জন্য প্রয়োজনীয় যদিও সেগুলি বাদ দিয়ে নথির ব্যাখ্যা পরিবর্তন হয় না ))

একটি ছোট ফলাফলের বিনিময়ে kধ্রুবকের পক্ষে অপসারণ করে তিনটি অক্ষর সংরক্ষণ করা যায় 64; 8বিকল্পটি অপর্যাপ্ত রয়েছে বলে আমি বিকল্পটি গণনা করব না ।

নোট করুন যে <canvas>ডিফল্ট থেকে ক্যানভাসের আকার বাড়াতে 256 বা তার বেশি আকারের বৈশিষ্ট্যের প্রয়োজন requires


22
আপনার এইচটিএমএল কোডগল্ফ :-) এ বৈধতা দেয় কিনা কেউই পাত্তা দেয় না: কিছু উন্নতি: <canvas id=c>এবং তারপরে c.getContext। ছোট লুপগুলি:for(x=k=128;x--;)for(y=k;y--;)
অনুলিপি করুন

4
আইডিএসকে বৈশ্বিক ভেরিয়েবলে রূপান্তরিত করা একটি ভয়াবহ অপ্রতুলতা যা আমি স্বীকার করতে অস্বীকার করি এবং ওয়েবকিট এটিকে স্ট্যান্ডার্ড মোডে প্রয়োগ করে না। লুপ ট্রিক্সের জন্য আপনাকে ধন্যবাদ।
কেভিন রেড

1
গৌণ উন্নতি: অন্যথায় দুর্দান্ত সমাধান x&y?0:দিয়ে প্রতিস্থাপন করা যেতে পারে x&y||
প্রিমো

5
ব্রাভো, এটা ঠিক দুর্দান্ত।
বুথবি

2
যেহেতু এটিতে কোনও স্ক্রিপ্ট রয়েছে, তাই আমি এটি HTML + জাভাস্ক্রিপ্ট হিসাবে শিরোনাম করার পরামর্শ দেব । এটি কারওর কাছে কীভাবে উত্তর দেওয়া যায় তা স্পষ্ট করে তুলবে।

30

গল্ফস্ক্রিপ্ট ( 43 42 টি অক্ষর)

' /\ /__\ '4/){.+\.{[2$.]*}%\{.+}%+\}3*;n*

আউটপুট:

               /\               
              /__\              
             /\  /\             
            /__\/__\            
           /\      /\           
          /__\    /__\          
         /\  /\  /\  /\         
        /__\/__\/__\/__\        
       /\              /\       
      /__\            /__\      
     /\  /\          /\  /\     
    /__\/__\        /__\/__\    
   /\      /\      /\      /\   
  /__\    /__\    /__\    /__\  
 /\  /\  /\  /\  /\  /\  /\  /\ 
/__\/__\/__\/__\/__\/__\/__\/__\

বৃহত্তর ত্রিভুজটির জন্য "3" কে একটি বৃহত সংখ্যায় পরিবর্তন করুন।


27

পাইথন (234)

সর্বাধিক গল্ফিং, ক্ষুদ্র চিত্র:

#!/usr/bin/env python3
from cairo import*
s=SVGSurface('_',97,84)
g=Context(s)
g.scale(97,84)
def f(w,x,y):
 v=w/2
 if w>.1:f(v,x,y);f(v,x+w/4,y-v);f(v,x+v,y)
 else:g.move_to(x,y);g.line_to(x+v,y-w);g.line_to(x+w,y);g.fill()
f(1,0,1)
s.write_to_png('s.png')

প্রয়োজন python3-cairo

একটি দুর্দান্ত বড় চিত্র পেতে আমার 239 টি অক্ষর প্রয়োজন ।

সিয়েরপিনস্কি ত্রিভুজ


1
import cairo as cআপনাকে কয়েকটি চরিত্র বাঁচাতে হবে
কোসিমোডো

1
এই উত্তরের আরও বেশি প্রয়োজন
ixtmixilix

26

গণিত - 32 অক্ষর

Nest[Subsuperscript[#,#,#]&,0,5]

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

গণিত - 37 টি অক্ষর

Grid@CellularAutomaton[90,{{1},0},31]

এটি 0 এবং 1 এর একটি 2D টেবিল তৈরি করবে, যেখানে 1 টি সিয়েরপিনস্কি ত্রিভুজ আঁকছে।

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


2
5 টি অতিরিক্ত অক্ষরের ব্যয়ে, আপনার দ্বিতীয় সমাধানটি আরও ArrayPlot@CellularAutomaton[90, {{1}, 0}, 31]বা আরও ভাল প্রদর্শিত হবে MatrixPlot@CellularAutomaton[90, {{1}, 0}, 31]
ডেভিডসি

1
... বা সাথে ReliefPlot@...
ডেভিডসি

আমি পেতে এই । আপনি সমস্ত বন্ধনী ছাড়া আউটপুটটি কীভাবে পেলেন?
মিঃ উইজার্ড

@ মিঃ উইজার্ড হুম ... বিশ্বের বন্ধনী কোথা থেকে এসেছে? এটি এখানেও কাজ করে: mathics.net চেষ্টা করুন এবং আমাকে জানান।
ভিটিলিয় কৌরভ

1
@ ভিটিলিয় কৌরভ প্রাথমিক (৩২ টি চরিত্র) সমাধানটি অবাক করে। আপনি কি একই কৌশল ব্যবহার করে "ফ্র্যাক্টাল ট্রি" চ্যালেঞ্জ (পিসিজিতে অন্য কোথাও) করতে পারেন?
মাইকেল স্টারন

22

পাইথন, 101 86

নিয়ম 90 অটোমেটন ব্যবহার করে।

x=' '*31
x+='.'+x
exec"print x;x=''.join(' .'[x[i-1]!=x[i-62]]for i in range(63));"*32

এটি দীর্ঘ, তবে সুন্দর

x=' '*31
x+=u'Δ'+x
exec u"print x;x=''.join(u' Δ'[x[i-1]!=x[i-62]]for i in range(63));"*32

সম্পাদনা করুন: সরাসরি স্ট্রিংগুলির সাথে খেললে, লম্বা কাটাকাটি থেকে মুক্তি পাওয়া, আউটপুট প্রাকটিয়ার বানানো।

আউটপুট:

                               Δ                               
                              Δ Δ                              
                             Δ   Δ                             
                            Δ Δ Δ Δ                            
                           Δ       Δ                           
                          Δ Δ     Δ Δ                          
                         Δ   Δ   Δ   Δ                         
                        Δ Δ Δ Δ Δ Δ Δ Δ                        
                       Δ               Δ                       
                      Δ Δ             Δ Δ                      
                     Δ   Δ           Δ   Δ                     
                    Δ Δ Δ Δ         Δ Δ Δ Δ                    
                   Δ       Δ       Δ       Δ                   
                  Δ Δ     Δ Δ     Δ Δ     Δ Δ                  
                 Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ                 
                Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ                
               Δ                               Δ               
              Δ Δ                             Δ Δ              
             Δ   Δ                           Δ   Δ             
            Δ Δ Δ Δ                         Δ Δ Δ Δ            
           Δ       Δ                       Δ       Δ           
          Δ Δ     Δ Δ                     Δ Δ     Δ Δ          
         Δ   Δ   Δ   Δ                   Δ   Δ   Δ   Δ         
        Δ Δ Δ Δ Δ Δ Δ Δ                 Δ Δ Δ Δ Δ Δ Δ Δ        
       Δ               Δ               Δ               Δ       
      Δ Δ             Δ Δ             Δ Δ             Δ Δ      
     Δ   Δ           Δ   Δ           Δ   Δ           Δ   Δ     
    Δ Δ Δ Δ         Δ Δ Δ Δ         Δ Δ Δ Δ         Δ Δ Δ Δ    
   Δ       Δ       Δ       Δ       Δ       Δ       Δ       Δ   
  Δ Δ     Δ Δ     Δ Δ     Δ Δ     Δ Δ     Δ Δ     Δ Δ     Δ Δ  
 Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ   Δ 
Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ

এটি দেখতে দুর্দান্ত দেখাচ্ছে: ডি
বেরি 605

সেই ইউ + 0394 রাজধানী ডেল্টা ব্যবহার করা সত্যিই দুর্দান্ত একটি স্পর্শ।
ডেভিড কনরাড

16

জে

,/.(,~,.~)^:6,'o'

আদর্শ নয়, যেহেতু ত্রিভুজটি idedর্ধ্বমুখী এবং এর পরে প্রচুর পরিমাণে সাদা জায়গা রয়েছে - তবে আকর্ষণীয় তবুও আমি ভেবেছিলাম।

আউটপুট:

o                                                               
oo                                                              
o o                                                             
oooo                                                            
o   o                                                           
oo  oo                                                          
o o o o                                                         
oooooooo                                                        
o       o                                                       
oo      oo                                                      
o o     o o                                                     
oooo    oooo                                                    
o   o   o   o                                                   
oo  oo  oo  oo                                                  
o o o o o o o o                                                 
oooooooooooooooo                                                
o               o                                               
oo              oo                                              
o o             o o                                             
oooo            oooo                                            
o   o           o   o                                           
oo  oo          oo  oo                                          
o o o o         o o o o                                         
oooooooo        oooooooo                                        
o       o       o       o                                       
oo      oo      oo      oo                                      
o o     o o     o o     o o                                     
oooo    oooo    oooo    oooo                                    
o   o   o   o   o   o   o   o                                   
oo  oo  oo  oo  oo  oo  oo  oo                                  
o o o o o o o o o o o o o o o o                                 
oooooooooooooooooooooooooooooooo                                
o                               o                               
oo                              oo                              
o o                             o o                             
oooo                            oooo                            
o   o                           o   o                           
oo  oo                          oo  oo                          
o o o o                         o o o o                         
oooooooo                        oooooooo                        
o       o                       o       o                       
oo      oo                      oo      oo                      
o o     o o                     o o     o o                     
oooo    oooo                    oooo    oooo                    
o   o   o   o                   o   o   o   o                   
oo  oo  oo  oo                  oo  oo  oo  oo                  
o o o o o o o o                 o o o o o o o o                 
oooooooooooooooo                oooooooooooooooo                
o               o               o               o               
oo              oo              oo              oo              
o o             o o             o o             o o             
oooo            oooo            oooo            oooo            
o   o           o   o           o   o           o   o           
oo  oo          oo  oo          oo  oo          oo  oo          
o o o o         o o o o         o o o o         o o o o         
oooooooo        oooooooo        oooooooo        oooooooo        
o       o       o       o       o       o       o       o       
oo      oo      oo      oo      oo      oo      oo      oo      
o o     o o     o o     o o     o o     o o     o o     o o     
oooo    oooo    oooo    oooo    oooo    oooo    oooo    oooo    
o   o   o   o   o   o   o   o   o   o   o   o   o   o   o   o   
oo  oo  oo  oo  oo  oo  oo  oo  oo  oo  oo  oo  oo  oo  oo  oo  
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

একটি দ্রুত ব্যাখ্যা:

ক্রিয়াটি (,~,.~)এখানে কাজটি করছে। এটি এমন একটি হুক যা প্রথমে ,.নিজের ( o-> oo) যুক্তিতে সেলাই করে এবং তারপরে আউটপুটটিতে মূল যুক্তি সংযোজন করে:

oo

হয়ে

oo
o

এই ক্রিয়াটি 6 বার ^:6পুনরাবৃত্তি হয় প্রতিটি পুনরুক্তির আউটপুট পরবর্তী পুনরাবৃত্তির ইনপুট হয়ে যায়। সুতরাং

oo
o

হয়ে

oooo
o o
oo
o

যা ঘুরে দাঁড়ায়

oooooooo
o o o o 
oo  oo
o   o
oooo
o o
oo
o

ইত্যাদির পরে আমি ,/.ত্রিভুজটি সোজা করার জন্য ত্রিভুজটি সারিগুলি তির্যকভাবে পড়তে সংযোজন উপর তির্যক ক্রিয়াবিশেষ ব্যবহার করেছি । আমার এটি করার দরকার নেই, যেমনটি এলোমেলো করে বলে। |.একই ফলাফল পেতে আমি কেবল প্রচুর বিপরীত করতে পারতাম । আরও ভাল, আমি কেবল (,,.~)^:6,'o'সম্পূর্ণ বিপরীত পদক্ষেপটি সংরক্ষণ করতে ব্যবহার করতে পারতাম ।

আহ ভাল, আপনি বাস এবং শিখুন। :-)


1
আপনি কীভাবে এটি সংক্ষেপে ব্যাখ্যা করতে পারেন? আমি জে
অ্যাডিটসু

1
|.(,~,.~)^:6,'o'সংক্ষিপ্ত এবং অতিরিক্ত স্থান ছাড়াই। এবং (,~,.~)^:6,1মাত্র 12 টি অক্ষরে শালীন ইনপুট দেয়!
এলোমেলো

@ অ্যাডিটসু আমি একটি ব্যাখ্যা যুক্ত করেছি।
গ্যারেথ

সুতরাং যদি আমি এটি পাই, অপারেটর দুটি 2 ডি অ্যারে সংযুক্ত করে?
মাইয়াভিক্টর

13

এপিএল (51)

      A←67⍴0⋄A[34]←1⋄' ○'[1+32 67⍴{~⊃⍵:⍵,∇(1⌽⍵)≠¯1⌽⍵⋄⍬}A]

ব্যাখ্যা:

  • A←67⍴0: এ 67 জিরোর ভেক্টর
  • A[34]←1: 34 তম উপাদানটি 1
  • {...}A: এ দিয়ে শুরু করুন, করুন:
  • ~⊃⍵:: যদি বর্তমান সারির প্রথম উপাদানটি শূন্য হয়
  • ⍵,∇: উত্তরে বর্তমান সারি যুক্ত করুন এবং এর সাথে পুনরাবৃত্তি করুন:
  • (1⌽⍵)≠¯1⌽⍵: ভেক্টর যেখানে প্রতিটি উপাদান পূর্ববর্তী প্রজন্মের তার প্রতিবেশীদের XOR is
  • ⋄⍬: অন্যথায়, আমরা সম্পন্ন করেছি
  • 32 67⍴: এটি একটি 67x32 ম্যাট্রিক্সে ফর্ম্যাট করুন
  • 1+: অক্ষরের অ্যারে থেকে সঠিক মান নির্বাচন করতে একটি যুক্ত করুন
  • ' ○'[... ]: আউটপুট হয় হয় কোনও স্থান (ত্রিভুজের অংশ নয়) বা একটি বৃত্ত (যখন এটি ত্রিভুজের অংশ হয়)

আউটপুট:

                                 ○                                 
                                ○ ○                                
                               ○ ○                               
                              ○ ○ ○ ○                              
                             ○ ○                             
                            ○ ○ ○ ○                            
                           ○ ○ ○ ○                           
                          ○ ○ ○ ○ ○ ○ ○ ○ ○                          
                         ○ ○                         
                        ○ ○ ○ ○                        
                       ○ ○ ○ ○                       
                      ○ ○ ○ ○ ○ ○ ○ ○ ○                      
                     ○ ○ ○ ○                     
                    ○ ○ ○ ○ ○ ○ ○ ○ ○                    
                   ○ ○ ○ ○ ○ ○ ○ ○ ○                   
                  ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○                  
                 ○ ○                 
                ○ ○ ○ ○                
               ○ ○ ○ ○               
              ○ ○ ○ ○ ○ ○ ○ ○ ○              
             ○ ○ ○ ○             
            ○ ○ ○ ○ ○ ○ ○ ○ ○            
           ○ ○ ○ ○ ○ ○ ○ ○ ○           
          ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○          
         ○ ○ ○ ○         
        ○ ○ ○ ○ ○ ○ ○ ○ ○        
       ○ ○ ○ ○ ○ ○ ○ ○ ○       
      ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○      
     ○ ○ ○ ○ ○ ○ ○ ○ ○     
    ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○    
   ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○   
  ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○  

1
বাবা। আমি প্রত্যাশা করছিলাম এটি 4 অক্ষরের, দ্বিপদী মোড 2 ব্যবহার করে ... (ঠিক আছে ... এর চেয়ে কিছুটা দীর্ঘ হতে পারে)
বুথবি

13

হাস্কেল (২৯১)

আমি গল্ফিং হ্যাসেল কোডগুলিতে খুব ভাল নই।

solve n = tri (putStrLn "") [2^n] n
tri m xs 1 =
  do putStrLn (l1 1 xs "/\\" 0)
     putStrLn (l1 1 xs "/__\\" 1)
     m
tri m xs n=tri m' xs (n-1)
  where m'=tri m (concat[[x-o,x+o]|x<-xs]) (n-1)
        o=2^(n-1)
l1 o [] s t=""
l1 o (x:xs) s t=replicate (x-o-t) ' '++s++l1 (x+2+t) xs s t

এর ফলাফল solve 4:

               /\
              /__\
             /\  /\
            /__\/__\
           /\      /\
          /__\    /__\
         /\  /\  /\  /\
        /__\/__\/__\/__\
       /\              /\
      /__\            /__\
     /\  /\          /\  /\
    /__\/__\        /__\/__\
   /\      /\      /\      /\
  /__\    /__\    /__\    /__\
 /\  /\  /\  /\  /\  /\  /\  /\
/__\/__\/__\/__\/__\/__\/__\/__\

13

কিউব্যাসিক 151 অক্ষর

উদাহরণ হিসাবে, কিউ বেসিক এ এটি কীভাবে করা যায় তা এখানে।

SCREEN 9
H=.5
P=300
FOR I=1 TO 9^6
    N=RND
    IF N > 2/3 THEN
        X=H+X*H:Y=Y*H
    ELSEIF N > 1/3 THEN
        X=H^2+X*H:Y=H+Y*H    
    ELSE
        X=X*H:Y=Y*H
    END IF
    PSET(P-X*P,P-Y*P)
NEXT

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


এই প্রোগ্রামটি 129 টি অক্ষরের অধীনে আপনি কি পরিমাপের বর্ণনা দিতে পারেন? আমি 151 পেয়েছি যদি আমি সম্ভবত সমস্ত অপ্রয়োজনীয় শ্বেতস্পেস সরিয়ে ফেলি। (আমি কিউব্যাসিকের সাথে পরিচিত নই।)
কেভিন রেড

আমি আমার গণনার জন্য সমস্ত সাদা জায়গা সরিয়ে নিয়েছি। আমার ধারণা আমি কেবল অপ্রয়োজনীয় সাদা স্থান গণনা করতে পারি। কোড গল্ফের জন্য "অফিসিয়াল" বিধিটি কি তা আমি নিশ্চিত নই।
কিব্বি

4
সঠিক প্রোগ্রামে চলে এবং উত্সাহিত করে এমন কোনও প্রোগ্রামে আপনাকে হোয়াইটস্পেস সহ অক্ষরের প্রকৃত সংখ্যা গণনা করা উচিত । স্বাভাবিকভাবেই আপনি কোনও অপ্রয়োজনীয় শ্বেত স্থান থাকতে চান না।
কেভিন রেড

1
আমার চরিত্রের গণনা সংশোধন করেছেন।
কিব্বি

13

পাইথন (42)

আমি মূলত বুথবাইস সমাধানের জন্য কয়েকটি পরামর্শ পোস্ট করতে চেয়েছিলাম (যিনি প্রকৃতপক্ষে বিধি 18 ব্যবহার করেন) তবে আমার মন্তব্য করার মতো খ্যাতি ছিল না, তাই আমি এটিকে অন্য উত্তরে পরিণত করেছি। যেহেতু তিনি তার দৃষ্টিভঙ্গি পরিবর্তন করেছেন, তাই আমি কিছু ব্যাখ্যা যুক্ত করেছি। আমার পরামর্শগুলি হ'ল:

  1. '' .জাইন (মানচিত্র (টিআর, এক্স)) এর পরিবর্তে '% d' * 64% টিপল (এক্স) ব্যবহার করুন
  2. তালিকার চারপাশে মোড়কের পরিবর্তে শূন্যে স্থানান্তরিত করুন

যা নিম্নলিখিত কোডে নেতৃত্ব দিত (93 অক্ষর):

x=[0]*63
x[31]=1
exec"print'%d'*63%tuple(x);x=[a^b for a,b in zip(x[1:]+[0],[0]+x[:-1])];"*32

তবে আমি আরও ভাল করেছিলাম, প্রথমে পূর্ণসংখ্যার অ্যারের পরিবর্তে লম্বিনেট ব্যবহার করে এবং কেবল বাইনারি উপস্থাপনা (75 টি অক্ষর) মুদ্রণ করে:

x=2**31
exec"print'%d'*63%tuple(1&x>>i for i in range(63));x=x<<1^x>>1;"*32

এবং অবশেষে অষ্টাল উপস্থাপনা মুদ্রণের মাধ্যমে, যা ইতিমধ্যে প্রিন্টফ ইন্টারপোলেশন (42 টি অক্ষর) দ্বারা সমর্থিত:

x=8**31
exec"print'%063o'%x;x=x*8^x/8;"*32

তাদের সমস্ত মুদ্রণ করবে:

000000000000000000000000000000010000000000000000000000000000000
000000000000000000000000000000101000000000000000000000000000000
000000000000000000000000000001000100000000000000000000000000000
000000000000000000000000000010101010000000000000000000000000000
000000000000000000000000000100000001000000000000000000000000000
000000000000000000000000001010000010100000000000000000000000000
000000000000000000000000010001000100010000000000000000000000000
000000000000000000000000101010101010101000000000000000000000000
000000000000000000000001000000000000000100000000000000000000000
000000000000000000000010100000000000001010000000000000000000000
000000000000000000000100010000000000010001000000000000000000000
000000000000000000001010101000000000101010100000000000000000000
000000000000000000010000000100000001000000010000000000000000000
000000000000000000101000001010000010100000101000000000000000000
000000000000000001000100010001000100010001000100000000000000000
000000000000000010101010101010101010101010101010000000000000000
000000000000000100000000000000000000000000000001000000000000000
000000000000001010000000000000000000000000000010100000000000000
000000000000010001000000000000000000000000000100010000000000000
000000000000101010100000000000000000000000001010101000000000000
000000000001000000010000000000000000000000010000000100000000000
000000000010100000101000000000000000000000101000001010000000000
000000000100010001000100000000000000000001000100010001000000000
000000001010101010101010000000000000000010101010101010100000000
000000010000000000000001000000000000000100000000000000010000000
000000101000000000000010100000000000001010000000000000101000000
000001000100000000000100010000000000010001000000000001000100000
000010101010000000001010101000000000101010100000000010101010000
000100000001000000010000000100000001000000010000000100000001000
001010000010100000101000001010000010100000101000001010000010100
010001000100010001000100010001000100010001000100010001000100010
101010101010101010101010101010101010101010101010101010101010101

অবশ্যই একটি গ্রাফিকাল সমাধান (131 টি অক্ষর) রয়েছে:

from PIL.Image import*
from struct import*
a=''
x=2**31
exec"a+=pack('>Q',x);x=x*2^x/2;"*32
fromstring('1',(64,32),a).save('s.png')

খুব ছোট সিয়ারপিনস্কি ত্রিভুজ : ডি


1
36:x=8**31;exec"print'%o'%x;x^=x/8;"*32
aditsu

13

8086 মেশিন কোড - 30 বাইট।

দ্রষ্টব্য: এটি আমার কোড নয় এবং উত্তর হিসাবে গ্রহণ করা উচিত নয়একটি 8086 সিপিইউ অনুকরণ করতে ভিন্ন সিজি সমস্যা নিয়ে কাজ করার সময় আমি এটি পেয়েছি । অন্তর্ভুক্ত টেক্সট ফাইলটি ক্রেডিট ডেভিড স্টাফর্ডকে , তবে এটিই আমার পক্ষে সেরা।

আমি এটি পোস্ট করছি কারণ এটি চালাক, সংক্ষিপ্ত, এবং আমি ভেবেছিলাম আপনি এটি দেখতে চান।

এটি একটি অল্প জায়গায় আরও নির্দেশাবলী প্যাক করতে ওভারল্যাপিং ওপকোড ব্যবহার করে। আশ্চর্য চালাক। এখানে মেশিন কোডটি রয়েছে:

B0 13 CD 10 B3 03 BE A0 A0 8E DE B9 8B 0C 32 28 88 AC C2 FE 4E 75 F5 CD 16 87 C3 CD 10 C3

একটি স্ট্রেট-আপ ডিকোড এর মতো দেখাচ্ছে:

0100: B0 13              mov AL, 13h
0102: CD 10              int 10h
0104: B3 03              mov BL, 3h
0106: BE A0 A0           mov SI, A0A0h
0109: 8E DE              mov  DS, SI
010B: B9 8B 0C           mov CX, C8Bh
010E: 32 28              xor  CH, [BX+SI]
0110: 88 AC C2 FE        mov  [SI+FEC2h], CH
0114: 4E                 dec SI
0115: 75 F5              jne/jnz -11

রান করার সময়, যখন 0x0115 এ লাফটি ঘটে, তখন লক্ষ্য করুন যে এটি পূর্ববর্তী নির্দেশের ঠিক মাঝখানে 0x010 সি তে ফিরে আসে:

0100: B0 13              mov AL, 13h
0102: CD 10              int 10h
0104: B3 03              mov BL, 3h
0106: BE A0 A0           mov SI, A0A0h
0109: 8E DE              mov  DS, SI
010B: B9 8B 0C           mov CX, C8Bh
010E: 32 28              xor  CH, [BX+SI]
0110: 88 AC C2 FE        mov  [SI+FEC2h], CH
0114: 4E                 dec SI
0115: 75 F5              jne/jnz -11
010C: 8B 0C              mov  CX, [SI]
010E: 32 28              xor  CH, [BX+SI]
0110: 88 AC C2 FE        mov  [SI+FEC2h], CH
0114: 4E                 dec SI
0115: 75 F5              jne/jnz -11
010C: 8B 0C              mov  CX, [SI]

উজ্জ্বল! আশা করি আপনারা আমার সাথে এটি ভাগ করে নিতে আপত্তি করবেন না। আমি জানি এটি প্রতি সেভির উত্তর নয়, তবে এটি চ্যালেঞ্জের পক্ষে আগ্রহী।

এখানে এটি কার্যকর হয়:

চলমান


11

সি 127 119 116 108 65

^ i & jএটির থেকে সুন্দর আউটপুট মুদ্রণের জন্য এইচটিএমএল উত্তরের কৌশলটি আরও 1 টি লাগবে (আপনি আত্মত্যাগ করে সত্যই কুৎসিত আউটপুট পেতে পারেন a^)।

a=32,j;main(i){for(;++i<a;)putchar(a^i&j);++j<a&&main(puts(""));}

এটিকে চমত্কার দিকে ঘুরিয়ে (32^i&j)আনতে (32|!(i&j))এবং এটিকে থেকে ঘুরিয়ে দেওয়ার ++i<aজন্য ++i<=a। তবে চেহারার চরিত্রগুলি নষ্ট করা আমার কাছে অসম্পূর্ণ বলে মনে হচ্ছে।

কুশল আউটপুট:

 ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
""  ""  ""  ""  ""  ""  ""  ""
"# !"# !"# !"# !"# !"# !"# !"#
  $$$$    $$$$    $$$$    $$$$
 !$%$% ! !$%$% ! !$%$% ! !$%$%
""$$&&  ""$$&&  ""$$&&  ""$$&&
"#$%&' !"#$%&' !"#$%&' !"#$%&'
      ((((((((        ((((((((
 ! ! !()()()() ! ! ! !()()()()
""  ""((**((**  ""  ""((**((**
"# !"#()*+()*+ !"# !"#()*+()*+
  $$$$((((,,,,    $$$$((((,,,,
 !$%$%()(),-,- ! !$%$%()(),-,-
""$$&&((**,,..  ""$$&&((**,,..
"#$%&'()*+,-./ !"#$%&'()*+,-./
              0000000000000000
 ! ! ! ! ! ! !0101010101010101
""  ""  ""  ""0022002200220022
"# !"# !"# !"#0123012301230123
  $$$$    $$$$0000444400004444
 !$%$% ! !$%$%0101454501014545
""$$&&  ""$$&&0022446600224466
"#$%&' !"#$%&'0123456701234567
      ((((((((0000000088888888
 ! ! !()()()()0101010189898989
""  ""((**((**0022002288::88::
"# !"#()*+()*+0123012389:;89:;
  $$$$((((,,,,000044448888<<<<
 !$%$%()(),-,-010145458989<=<=
""$$&&((**,,..0022446688::<<>>
"#$%&'()*+,-./0123456789:;<=>?

আমি দেখতে দেখতে এটির মতো ধরণের। তবে আপনি যদি এটি সুন্দর হওয়ার জন্য জেদ করেন তবে আপনি চারটি অক্ষর ডক করতে পারেন। সুন্দর আউটপুট:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
  !!  !!  !!  !!  !!  !!  !!  !
  !   !   !   !   !   !   !   !
!!    !!!!    !!!!    !!!!    !
!     ! !     ! !     ! !     !
      !!      !!      !!      !
      !       !       !       !
!!!!!!        !!!!!!!!        !
! ! !         ! ! ! !         !
  !!          !!  !!          !
  !           !   !           !
!!            !!!!            !
!             ! !             !
              !!              !
              !               !
!!!!!!!!!!!!!!                !
! ! ! ! ! ! !                 !
  !!  !!  !!                  !
  !   !   !                   !
!!    !!!!                    !
!     ! !                     !
      !!                      !
      !                       !
!!!!!!                        !
! ! !                         !
  !!                          !
  !                           !
!!                            !
!                             !
                              !
                              !

পুরানো 108 চর ছেড়ে সেলুলার অটোমেটা সংস্করণ।

j,d[99][99];main(i){d[0][31]=3;for(;i<64;)d[j+1][i]=putchar(32|d[j][i+2]^d[j][i++]);++j<32&&main(puts(""));}

সুতরাং আমি মনে করি না যে আমি এটির তুলনায় এটি আরও ছোট পাব তাই আমি কোডটি ব্যাখ্যা করব। আমি এই ব্যাখ্যাটি ছেড়ে দেব, কারণ কিছু কৌশল কার্যকর হতে পারে।

j,d[99][99]; // these init as 0
main(i){ //starts at 1 (argc)
  d[0][48]=3; //seed the automata (3 gives us # instead of !)
  for(;i<98;) // print a row
    d[j+1][i]=putchar(32|d[j][i+2]]^d[j][i++]);
    //relies on undefined behavoir. Works on ubuntu with gcc ix864
    //does the automata rule. 32 + (bitwise or can serve as + if you know
    //that (a|b)==(a^b)), putchar returns the char it prints
  ++j<32&&main(puts(""));
  // repeat 32 times
  // puts("") prints a newline and returns 1, which is nice
}

কিছু আউটপুট

                             # #                               
                            #   #                              
                           # # # #                             
                          #       #                            
                         # #     # #                           
                        #   #   #   #                          
                       # # # # # # # #                         
                      #               #                        
                     # #             # #                       
                    #   #           #   #                      
                   # # # #         # # # #                     
                  #       #       #       #                    
                 # #     # #     # #     # #                   
                #   #   #   #   #   #   #   #                  
               # # # # # # # # # # # # # # # #                 
              #                               #                
             # #                             # #               
            #   #                           #   #              
           # # # #                         # # # #             
          #       #                       #       #            
         # #     # #                     # #     # #           
        #   #   #   #                   #   #   #   #          
       # # # # # # # #                 # # # # # # # #         
      #               #               #               #        
     # #             # #             # #             # #       
    #   #           #   #           #   #           #   #      
   # # # #         # # # #         # # # #         # # # #     
  #       #       #       #       #       #       #       #    
 # #     # #     # #     # #     # #     # #     # #     # #   
#   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #  
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

1
এটি সিয়েরপিনস্কি ত্রিভুজ হিসাবে উপস্থিত হবে না; এটি দুটি নয় বরং তিনটি উপ-ত্রিভুজগুলিতে বিভক্ত হয় (এবং নিম্নে অগ্রসর হওয়া) এবং এটি দেখা যায় যে এটি কোনও বৃহত কেন্দ্রীয় খালি ত্রিভুজ তৈরি করে না।
কেভিন রেড

1
কারণ আমি ভুল নিয়মটি ব্যবহার করেছি: ও। স্থির, এবং কয়েক দফা চাঁচা।
ওয়ালেপেন

9

80x86 কোড / এমএসডস - 10 বাইট

এমসডোসে খুব ক্ষুদ্র পরিচিতিগুলির জন্য বিশেষজ্ঞ একজন সিজকোডার হিসাবে আমি একটি প্রোগ্রাম নিয়ে এসেছি যা কেবলমাত্র 10 বাইট দখল করে।

হেক্সে:

04 13 CD 10 20 E9 B4 0C E2 F6

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

asm এ:

X: add al,0x13
int 0x10
and cl,ch
mov ah,0x0C
loop X

আমি কোড করা প্রথম সংস্করণটি হ'ল "কলপিনস্কি" যা আকারে 16 বাইট, এবং এমনকি ইন্টারেক্টিভ এমনভাবে হয় যাতে আপনি কীবোর্ড এবং মাউস দিয়ে রঙ পরিবর্তন করতে পারেন। একসাথে "ফ্রেগ" - অন্য সিজকোডার - আমরা এটিকে 13 বাইটে নামিয়ে এনে একটি 10 ​​বাইট প্রোগ্রামের জন্য অনুমতি দিয়েছি যেখানে কেবল মূল রুটিন রয়েছে।

জিনিসগুলি অ্যানিমেটেড করার সময় এটি আরও আকর্ষণীয় হয়ে ওঠে , সুতরাং আমি অন্য সংস্করণটি জুমপিংস্কি mention৪ উল্লেখ করব - 512 বাইটে "জোম্পিনস্কি সি 64" এর সঠিক আচরণের নকল করার চেষ্টা করছি - এমএসডোসের জন্যও, নামটি যেমন আকারে 64 বাইট।

কমনীয়তা, রঙ এবং প্রতিসাম্য হারাতে (উপরের লিঙ্কের পিছনে উত্স এবং নির্বাহযোগ্য উপলব্ধ) হারিয়ে এই আরও 31 টি বাইটে অপ্টিমাইজ করা সম্ভব

আসলটি ডাউনলোড করুন এবং "পাউয়েট" তে মন্তব্য করুন


2
আপনার কোডের একটি হেক্স ডাম্প পোস্ট করা উচিত, যাতে আমরা আসল বাইটগুলি দেখতে পারি।
mbomb007

8

পোস্টস্ক্রিপ্ট, 120 টি অক্ষর

-7 -4 moveto
14 0 rlineto
7{true upath dup
2{120 rotate uappend}repeat[2 0 0 2 7 4]concat}repeat
matrix setmatrix
stroke

ঘোস্টস্ক্রিপ্ট আউটপুট:

ঘোস্টস্ক্রিপ্ট আউটপুট রেন্ডার হয়েছে

এটি ইতিমধ্যে অঙ্কিত যা পুনরাবৃত্তভাবে ট্রিপল করে চিত্রটি অঙ্কন করছে।

প্রথম পদক্ষেপটি একটি লাইন আঁকছে। লাইনটি ইউজারপথ হিসাবে সংরক্ষণ করা হয়, তারপরে প্রতিবার 120 ডিগ্রি ঘোরার পরে ব্যবহারকারীপথটি আরও দু'বার যুক্ত করা হয়। [2 0 0 2 7 4]concat"রোটেশন পয়েন্ট" পরবর্তী বড় সাদা "কেন্দ্র ত্রিভুজ" এর কেন্দ্রে নিয়ে যায় যা আমাদের ইতিমধ্যে ত্রিভুজটির প্রতিলিপি দ্বারা আবদ্ধ করা হবে। এখানে, আমরা পদক্ষেপ 1 এ ফিরে এসেছি (ঘূর্ণন দ্বারা ত্রিগুণিত একটি শীর্ষ তৈরি করা)।

3 বারের প্রথম সংখ্যা দ্বারা পুনরাবৃত্তির সংখ্যা নিয়ন্ত্রণ করা হয়।


+1 খুব সুন্দর। আমার উপরে কোনও ধারণা নেই যে এটি ব্যবহার করা যেতে পারে।
লুসার droog

আরে, এখনই এই চিত্রটি যুক্ত করার জন্য আপনার খ্যাতি পাওয়া গেছে!
লুসার ড্রাগ

@ লেজারড্রোগ: এটি ঠিক আছে (এমনকি আপনাকে আংশিক ধন্যবাদও)!
থমাস ডাব্লু।

7

জে (9 টি অক্ষর)

সহজেই কুরুচিপূর্ণ, আউটপুট দেখার জন্য আপনাকে সত্যই স্কুইন্ট করা দরকার;)

2|!/~i.32

আউটপুট উত্পাদন করে

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

অবশ্যই আপনি এটি গ্রাফিকভাবে প্রদর্শন করতে পারেন:

load 'viewmat'
viewmat 2|!/~i.32

ভাবমূর্তি


কিভাবে ... কি?
অ্যাকোলিট

4
কোডটি পাস্কালের ত্রিভুজটির সম্পত্তিটি ব্যবহার করে যে আপনি যদি সমস্ত বিজোড় (এমনকি) সংখ্যাগুলি কালো (সাদা) রঙ করেন তবে আপনি সিয়েরপিনস্কি ত্রিভুজটি দিয়ে শেষ করবেন। ( এই চিত্রটি দেখুন)। i.32 তালিকাটি 0 1 2 ... 31 তৈরি করে। তারপরে 2 | সিয়েরপিনস্কির ত্রিভুজটি তৈরি করে এই ম্যাট্রিক্স মড 2 তে কেবল প্রতিটি উপাদান।
মার্ক অ্যালেন

4

এপিএল, 37 32 ( 28 23)

খাড়া ত্রিভুজ ( 37 32-চর)

({((-1⌷⍴⍵)⌽⍵,∊⍵)⍪⍵,⍵}⍣⎕)1 2⍴'/\'

ব্যাখ্যা

  • 1 2⍴'/\': একটি 1 × 2 অক্ষর ম্যাট্রিক্স তৈরি করুন /\
  • {((-1⌷⍴⍵)⌽⍵,∊⍵)⍪⍵,⍵}: একটি ফাংশন যা প্রশস্ত হিসাবে দ্বিগুণ ম্যাট্রিক্স তৈরি করতে উভয় পক্ষের ডান যুক্তিকে প্যাড করে, তারপরে ডান যুক্তিকে নিজেই নীচে দ্বিগুণ করে দেয়।
    যেমন /\হয়ে উঠত
 / \ 
/ \ / \
  • ⍣⎕: ফাংশনটি পুনরুক্ত করুন (ব্যবহারকারীর ইনপুট) বার।

উদাহরণ আউটপুট

               /\               
              /\/\              
             /\  /\             
            /\/\/\/\            
           /\      /\           
          /\/\    /\/\          
         /\  /\  /\  /\         
        /\/\/\/\/\/\/\/\        
       /\              /\       
      /\/\            /\/\      
     /\  /\          /\  /\     
    /\/\/\/\        /\/\/\/\    
   /\      /\      /\      /\   
  /\/\    /\/\    /\/\    /\/\  
 /\  /\  /\  /\  /\  /\  /\  /\ 
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

স্কিউড ত্রিভুজ ( 28 23-চর)

({(⍵,∊⍵)⍪⍵,⍵}⍣⎕)1 1⍴'○'

Explaination

  • 1 1⍴'○': একটি 1 × 1 অক্ষর ম্যাট্রিক্স তৈরি করুন
  • {(⍵,∊⍵)⍪⍵,⍵}: একটি ফাংশন যা ডানদিকে ডানদিকে যুক্তি দিয়ে ফাঁকা করে একটি ম্যাট্রিক্স প্রশস্ত হিসাবে দ্বিগুণ তৈরি করে, তারপরে ডান যুক্তিকে নিজেই নীচে দ্বিগুণ করে দেয়।
    যেমন হয়ে উঠত
○ 
○○
  • ⍣⎕: ফাংশনটি পুনরুক্ত করুন (ব্যবহারকারীর ইনপুট) বার।

উদাহরণ আউটপুট

○               
○○              
○ ○             
○○○○            
○   ○           
○○  ○○          
○ ○ ○ ○         
○○○○○○○○        
○       ○       
○○      ○○      
○ ○     ○ ○     
○○○○    ○○○○    
○   ○   ○   ○   
○○  ○○  ○○  ○○  
○ ○ ○ ○ ○ ○ ○ ○ 
○○○○○○○○○○○○○○○○

4

পাইথন (75)

আমি পার্টিতে দু'বছর দেরিতে এসেছি, কিন্তু আমি অবাক হয়েছি যে কেউ এখনও এই পদ্ধতি গ্রহণ করেনি

from pylab import*
x=[[1,1],[1,0]]
for i in'123':x=kron(x,x)
imsave('a',x)

level7

নিজের একাধিক অনুলিপি দ্বারা ম্যাট্রিক্স প্রতিস্থাপন করতে ক্রোনেকার পণ্য ব্যবহার করে।

আমি x=kron(x,x);x=kron(x,x)তিনটি দৃশ্যমান স্তরের সাথে একটি 16x16 পিক্সেল চিত্র পেতে লাইন তিনটি ব্যবহার করে দুটি অক্ষর বাঁচাতে পেরেছি বা পুনরাবৃত্তকারীটিতে আরও একটি চর যোগ করতে এবং 2 ^ 16 x 2 ^ 16 = 4.3 গিগাপিক্সেল চিত্র এবং 15 ত্রিভুজ স্তরের সাথে শেষ করতে পারি।


3

লোগো, 75 টি অক্ষর

মাত্র প্রথম ফাংশনের জন্য 59 টি অক্ষর, দ্বিতীয়টি প্রথমটিকে আকার এবং গভীরতার / পুনরাবৃত্তির সংখ্যার সাথে ডাকে। সুতরাং আপনি কমান্ডটি দিয়ে দোভাষী থেকে প্রথম ফাংশনটি কল করতে পারেন: ই 99 5, অথবা আপনি যে আকারের আউটপুট চান তা করতে পারেন

to e :s :l
if :l>0[repeat 3[e :s/2 :l-1 fd :s rt 120]]
end
to f
e 99 5
end

+1 আমি লোগো সম্পর্কে পড়েছি। আপনি কোন দোভাষী ব্যবহার করছেন? ... লোগো আমার এল-সিস্টেম চ্যালেঞ্জের জন্য প্রাকৃতিক ফিট হতে পারে ।
লুসার droog

যদি আপনি কেবল to fএবং তার endচারপাশ সরিয়ে ফেলেন তবে e 99 5আপনার কম সংখ্যক অক্ষরে একটি সম্পূর্ণ চলমান প্রোগ্রাম রয়েছে। এছাড়াও, ইউসিবি লোগোতে (যদিও অন্য সংস্করণ নয়) আপনি আরও অক্ষর সংরক্ষণ করতে ভেরিয়েবলের কলোনগুলি হারাতে পারেন।
মার্ক রিড


3

জে (18 টি অক্ষর)

' *'{~(,,.~)^:9 ,1

ফলাফল

*                               
**                              
* *                             
****                            
*   *                           
**  **                          
* * * *                         
********                        
*       *                       
**      **                      
* *     * *                     
****    ****                    
*   *   *   *                   
**  **  **  **                  
* * * * * * * *                 
****************                
*               *               
**              **              
* *             * *             
****            ****            
*   *           *   *           
**  **          **  **          
* * * *         * * * *         
********        ********        
*       *       *       *       
**      **      **      **      
* *     * *     * *     * *     
****    ****    ****    ****    
*   *   *   *   *   *   *   *   
**  **  **  **  **  **  **  **  
* * * * * * * * * * * * * * * * 
********************************

3

পাইথন (90 টি অক্ষর)

from turtle import*
def l():left(60)
def r():right(60)
def f():forward(1)
def L(n):
 if n:n-=1;R(n);l();L(n);l();R(n)
 else:f()
def R(n):
 if n:n-=1;L(n);r();R(n);r();L(n)
 else:f()
l();L(8)

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

সিয়েরপিনস্কি ত্রিভুজ ভরা ফ্র্যাক্টাল লাইন আঁকুন


দৌড়ানোর আগে, আমি ht();speed(0);up();goto(20-window_width()/2, 20-window_height()/2);down()আমদানির পরে সন্নিবেশ করার প্রস্তাব দিই । এটি এটি আরও দ্রুত চালাবে এবং আউটপুটটি ক্যানভাসের সাথে ফিট করে তা নিশ্চিত করবে।
mbomb007

3

গণিত 67

ListPlot@NestList[(#+RandomChoice@{{0,0},{2,0},{1,2}})/2&,{0,0},8!]

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

গণিত 92

Graphics@Polygon@Nest[Join@@(Mean/@#&/@#~Tuples~2~Partition~3&/@#)&,{{{0,0},{2,0},{1,1}}},3]

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


3

গণিত , 29 বাইট

Image@Array[BitAnd,{2,2}^9,0]

ভাবমূর্তি @ array [BitAnd, {2,2} ^ 9,0]

সিয়েরপিনস্কি টেট্রহেড্রন একইভাবে আঁকতে পারে:

Image3D[1-Array[BitXor,{2,2,2}^7,0]]

Image3D [1-বিন্যস্ত [BitXor, {2,2,2} ^ 7,0]]


3

জে , 37 35 বাইট

-২ বাইটস ফ্রাউনফ্রোগকে ধন্যবাদ

(,.~,~' '&,.^:#)@[&0' /\',:'/__\'"_

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

এটি পিটার টেলরের আসকি আর্ট সংস্করণটি জেতে রূপান্তরিত হয়েছে।

       /\       
      /__\      
     /\  /\     
    /__\/__\    
   /\      /\   
  /__\    /__\  
 /\  /\  /\  /\ 
/__\/__\/__\/__\

@]^:[-> @[&0এবং ' /\ '->' /\'
ফ্রাউনফ্রগ

&0কৌশলটি কোথায় নথিবদ্ধ করা হয়েছে তা আপনি কি জানেন ?
যোনা

1
পৃষ্ঠার নীচে এখানে উল্লেখ করা হয়েছে । এটি একটি বাইট সংরক্ষণ করার সময় আপনি পুনরাবৃত্তির সংখ্যার নেতিবাচক ক্ষমতা হারাবেন।
ফ্রাউনফ্রোগ

ওহ, আপনি ,~চারপাশে অপারেন্ডস অদলবদল করতে সক্ষম হওয়া উচিত ।
ফ্রাউনফ্রোগ

3

গলিতে লুয়া স্ক্রিপ্ট , ৫৪ বাইট

g=golly()
g.setrule("W60")
g.setcell(0,0,1)
g.run(512)

গলি লুয়া এবং পাইথন স্ক্রিপ্টিং সমর্থন সহ একটি সেলুলার অটোমেটা সিমুলেটর।

এই স্ক্রিপ্টটি ওল্ফ্রাম রুল 60 এর বিধি সেট করে, সেলটি (0,0) থেকে 1 এ সেট করে এবং 512 ধাপ চালায়।

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


2

পুনশ্চ, 205 203

[48(0-1+0+1-0)49(11)43(+)45(-)/s{dup
0 eq{exch{[48{1 0 rlineto}49 1 index
43{240 rotate}45{120 rotate}>>exch
get exec}forall}{exch{load
exch 1 sub s}forall}ifelse 1 add}>>begin
9 9 moveto(0-1-1)9 s fill

স্ট্রিং এবং পুনরাবৃত্তি ব্যবহার করে পুনর্লিখন ঠিক একই গণিতে শেষ হয়। তবে ম্যাক্রো-পদ্ধতির গভীরতা-সীমাবদ্ধতাগুলি অতিক্রম করা হয়।

সম্পাদনা: এর fill চেয়ে কম stroke

অভিযুক্ত এবং মন্তব্য।

%!
[   % begin dictionary
    48(0-1+0+1-0) % 0
    49(11)        % 1
    43(+)         % +
    45(-)         % -
    /s{ % string recursion-level
        dup 0 eq{ % level=0
            exch{  % iterate through string
                [
                    48{1 0 rlineto} % 0
                    49 1 index      % 1 
                    43{240 rotate}  % +
                    45{120 rotate}  % -
                >>exch get exec % interpret turtle command
            }forall
        }{ % level>0
            exch{  % iterate through string
                load exch  % lookup charcode
                1 sub s    % recurse with level-1
            }forall
        }ifelse
        1 add  % return recursion-level+1
    }
>>begin
9 9 moveto(0-1-1)9 s fill % execute and fill

যোগ করা 0 setlinewidthএটি কত গভীর হয় তার আরও ভাল ধারণা দেয়।

<কোড> পূরণ করুন </ কোড> ব্যবহার করে চিত্রটি সংশোধন করুন (প্রায় একই রকম)


এটি আমার প্রিয়।
সিজেফুরে

এই বাহ্যিক lib দিয়ে এটি খাটো করার একটি উপায় আছে যা আমি সত্যের পরে লিখেছিলাম এবং ব্যবহার করতে পারি না। : পি
লুসার ড্রোগ 3


2

অ্যাসিম্পটোট, 152 বাইট

আমি এটি যুক্ত করব, বেশিরভাগ সময় থেকে আমি এই সাইটে অ্যাসিম্পোটোটের কম-বেশি কোনও উত্তর দেখেছি। চমৎকার ফর্ম্যাটিং এবং সাধারণতার জন্য কয়েকটি নষ্ট বাইট, তবে আমি এটির সাথে বেঁচে থাকতে পারি। ধারণকৃত ত্রিভুজটির কোণগুলি যেখানে রয়েছে সেখানে A, B এবং C পরিবর্তন করা যাবে তবে আপনি যেভাবে ভাবেন সেভাবে সম্ভবত তা নয়। গভীরতা বাড়াতে অসমতায় সংখ্যা বাড়ান।

pair A=(0,0),B=(1,0),C=(.5,1);void f(pair p,int d){if(++d<7){p*=2;f(p+A*2,d);f(p+B*2,d);f(p+C*2,d);}else{fill(shift(p/2)*(A--B--C--cycle));}}f((0,0),0);

বা অবারিত এবং পাঠযোগ্য

pair A=(0,0), B=(1,0), C=(.5,1);

void f(pair p, int d) {
    if (++d<7) {
        p *= 2;
        f(p+A*2,d);
        f(p+B*2,d);
        f(p+C*2,d);
    } else {
        fill(shift(p/2)*(A--B--C--cycle));
    }
}

f((0,0),0);

সুতরাং অ্যাসিপটোট হ'ল কিছুটা সি-এর মতো সিনট্যাক্স সহ একটি ঝরঝরে ভেক্টর গ্রাফিক্স ভাষা। প্রযুক্তিগত ডায়াগ্রামের জন্য বেশ কার্যকর useful আউটপুট অবশ্যই কোনও ভেক্টর ফর্ম্যাটে ডিফল্টরূপে (ইপিএস, পিডিএফ, এসভিজি) তবে মূলত ইমেজম্যাগিক সমর্থন করে এমন সমস্ত কিছুতে রূপান্তরিত হতে পারে। আউটপুট:

সিয়েরপিনস্কি ত্রিভুজ


2

হাস্কেল , 166 154 বাইট

(-২২ বাইটস লাইকোনিকে ধন্যবাদ, (জিপবিথ এবং ল্যাম্বদার পরিবর্তে জিপ এবং তালিকা উপলব্ধি, প্রথম লাইনটি উত্পাদন করার আরও ভাল উপায়))

i#n|let k!p=p:(k+1)![m*l*r+(m*(l*r-l-r)+1)*0^mod k(2^(n-i))|(l,m,r)<-zip3(1:p)p$tail p++[1]];x=1<$[2..2^n]=mapM(putStrLn.map("M "!!))$take(2^n)$1!(x++0:x)

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

ব্যাখ্যা:

ফাংশন পুনরাবৃত্তির পদক্ষেপের পরে i#nউচ্চতার একটি এএসসিআইআই-ত্রিভুজ আঁকে ।2^ni

অভ্যন্তরীণভাবে ব্যবহৃত এনকোডিং খালি অবস্থানগুলি 1এবং পুরো অবস্থান হিসাবে এনকোড করে 0। অতএব, ত্রিভুজ প্রথম লাইন হিসাবে এনকোডেড হয়েছে [1,1,1..0..1,1,1]সঙ্গে 2^n-1শূন্য উভয় পক্ষের বেশী। এই তালিকাটি তৈরি করতে, আমরা তালিকাটি শুরু করি x=1<$[2..2^n], অর্থাত [2..2^n]ম্যাপ করা সমস্ত কিছু সহ তালিকা 1। তারপরে, আমরা সম্পূর্ণ তালিকাটি তৈরি করিx++0:x

অপারেটর k!p(নীচে বিশদ বিবরণ), একটি লাইন সূচক দেওয়া হয়েছে kএবং pএর সাথে সম্পর্কিত লাইনগুলির একটি অসীম তালিকা তৈরি করে p। আমরা এটি সঙ্গে অনুরোধ1পুরো ত্রিভুজটি পেতে এবং উপরে বর্ণিত প্রারম্ভিক লাইনের এবং তারপরে কেবল প্রথম 2^nলাইনগুলি নেওয়া হয় । এর পরে, আমরা কেবল প্রতিটি লাইনে মুদ্রণ প্রতিস্থাপন 1স্থান সঙ্গে এবং 0সঙ্গে M(তালিকা অ্যাক্সেস করার মাধ্যমে "M "অবস্থানে 0বা 1)।

অপারেটর k!pনিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়:

k!p=p:(k+1)![m*l*r+(m*(l*r-l-r)+1)*0^mod k(2^(n-i))|(l,m,r)<-zip3(1:p)p$tail p++[1]]

প্রথমত, আমরা এর তিনটি সংস্করণ উত্পন্ন করি p: 1:pএটি pএকটি 1প্রেন্টেন্ড সহ, pনিজেই এবং tail p++[1]যা এর প্রথম উপাদানটি ছাড়া সমস্ত কিছুp1 সংযোজন সহ বাদে সমস্ত কিছু। তারপরে আমরা এই তিনটি তালিকা জিপ করি, আমাদের pবাম এবং ডান প্রতিবেশী হিসাবে কার্যকরভাবে সমস্ত উপাদান সরবরাহ করে (l,m,r)। নতুন লাইনে সংশ্লিষ্ট মান গণনা করতে আমরা একটি তালিকা বোধগম্যতা ব্যবহার করি:

m*l*r+(m*(l*r-l-r)+1)*0^mod k(2^(n-i))    

এই অভিব্যক্তিটি বোঝার জন্য, আমাদের দু'টি বিবেচনা করার জন্য প্রাথমিক ধারণা রয়েছে: আমাদের হয় কেবল পূর্ববর্তী লাইনটি প্রসারিত করুন, অথবা আমরা এমন এক পর্যায়ে এসেছি যেখানে ত্রিভুজটির একটি ফাঁকা জায়গা শুরু হয়। প্রথম ক্ষেত্রে, আশেপাশের কোনও স্পট পূরণ করা থাকলে আমাদের একটি পূর্ণ স্থান রয়েছে have এটি হিসাবে গণনা করা যেতে পারে m*l*r; যদি এই তিনটির কোনওটি শূন্য হয়, তবে নতুন মানটি শূন্য। অন্য কেসটি কিছুটা কৌশলযুক্ত। এখানে, আমাদের মূলত প্রান্ত সনাক্তকরণ প্রয়োজন। নিম্নলিখিত টেবিলটি নতুন লাইনে ফলাফল মান সহ আটটি সম্ভাব্য পাড়া দেয়:

000 001 010 011 100 101 110 111
 1   1   1   0   1   1   0   1

এই টেবিলটি উত্পন্ন করার জন্য একটি সোজাসুজি সূত্র 1-m*r*(1-l)-m*l*(1-r)যা সহজতর হবে m*(2*l*r-l-r)+1। এখন আমাদের এই দুটি ক্ষেত্রে নির্বাচন করতে হবে, যেখানে আমরা লাইন নম্বরটি ব্যবহার করি k। যদি mod k (2^(n-i)) == 0, আমাদের দ্বিতীয় কেসটি ব্যবহার করতে হয়, অন্যথায়, আমরা প্রথম কেসটি ব্যবহার করি। শব্দটি 0^(mod k(2^n-i))হ'ল 0যদি আমাদের প্রথম কেস ব্যবহার করতে হয় এবং1 যদি আমাদের দ্বিতীয় কেস ব্যবহার করতে হয়। ফলস্বরূপ, আমরা ব্যবহার করতে পারি

m*l*r+(m*(l*r-l-r)+1)*0^mod k(2^(n-i)) 

মোট - যদি আমরা প্রথম কেসটি ব্যবহার করি তবে আমরা সহজভাবে পাই m*l*r, তবে দ্বিতীয় ক্ষেত্রে, একটি অতিরিক্ত শব্দ যুক্ত করা হয়, যা গ্র্যান্ডকে মোট দেয় m*(2*l*r-l-r)+1


1
154 বাইট: এটি অনলাইনে চেষ্টা করুন! উপায় দ্বারা দুর্দান্ত ব্যাখ্যা!
লাইকনি

@ লাইকনি ওহ, সেখানে কিছু খুব সুন্দর উন্নতি!
সাচচান

1

সি, 106 অক্ষর

i,j;main(){for(;i<32;j>i/2?puts(""),j=!++i:0)
printf("%*s",j++?4:33-i+i%2*2,i/2&j^j?"":i%2?"/__\\":"/\\");}

(এটি এখনও আমাকে বিস্মিত করে যে সিতে puts("")একটি নতুন লাইন আউটপুটের সবচেয়ে সংক্ষিপ্ততম উপায়)

মনে রাখবেন আপনি প্রতিস্থাপন বড় করা (বা ছোট) gaskets তৈরি করতে পারেন 32মধ্যে for, দুই একটি বৃহত্তর (ছোট) ক্ষমতা সঙ্গে লুপ টেস্ট দীর্ঘ হিসাবে হিসাবে আপনার কাছে প্রতিস্থাপন 33মাঝখানে printf()ক্ষমতা অফ দুই plus- সঙ্গে এক.

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