একটি সংখ্যা থেকে একটি বাইনারি পথ আউটপুট


22

একটি পূর্ণসংখ্যার জন্য nযা সন্তুষ্ট হয় n > 0, তার বাইনারি উপস্থাপনার ভিত্তিতে ডান-অবতরণকারী পথ হিসাবে এর মানটি লিখুন।

বিধি

  • প্রথম (সবচেয়ে গুরুত্বপূর্ণ) সেট বিট সর্বদা উপরের-বাম কোণে থাকে।
  • পরের বিটটি সেট করা হলে (ক 1), পূর্ববর্তী অক্ষরের মতো একই কলামে পরবর্তী লাইনে একটি অক্ষর ("ভরাট") আঁকুন। ভরাট করার জন্য স্পেস ("খালি") ব্যবহার করার চেষ্টা করুন, তবে যে কোনও অক্ষর যতক্ষণ না সবসময় একই থাকে ততক্ষণ কাজ করবে।
  • পরের বিটটি আনসেট করা হলে (ক 0), একই লাইনে একটি অক্ষর আঁকুন ("ভরা") সাথে সাথে পূর্ববর্তী অক্ষরের ডানদিকে আঁকুন।
  • আপনার কোডটিতে কমপক্ষে 20 টি গুরুত্বপূর্ণ বিট সহ সংখ্যাগুলি সমর্থন করা উচিত।
  • একটি সম্পূর্ণ প্রোগ্রাম, একটি ফাংশন, একটি ল্যাম্বদা ইত্যাদি লিখুন তবে কোনও স্নিপেট নেই।
  • কোনও নেতৃস্থানীয় স্পেস (বা "খালি" চর) / লাইন অনুমোদিত নয়
  • যেকোন সংখ্যক ট্রেলিং স্পেস (বা "খালি" চর) / লাইন অনুমোদিত
  • যে কোনও ধরণের 1 ডি ইনপুট গ্রহণ করা হয়: সংখ্যা, স্ট্রিং, বুলিয়ানগুলির অ্যারে ইত্যাদি বিটের ক্রমটি যদি অচল থাকে।
  • যে কোনও ধরণের ভিজ্যুয়াল 2 ডি আউটপুট গ্রহণ করা হয়: স্টাডআউটে একটি স্ট্রিং ("ভরাট" এবং "খালি" প্রতিনিধিত্বকারী কোনও দুটি স্বতন্ত্র মান সহ), আপনি চাইলে ম্যাট্রিক্সও আউটপুট করতে পারেন। সংখ্যার একটি তালিকা "শিরোনামের কোনও শূন্যস্থান নেই" রুলের সাথে পুনর্মিলন করা শক্ত বলে মনে হয় তবে আপনি যদি এটির ব্যবহারের কোনও উপায় খুঁজে পান তবে আমি এটির জন্য উন্মুক্ত। দ্রষ্টব্য: আপনি যদি কোনও স্ট্রিং মুদ্রণ করতে বা ফেরত পাঠানোর পছন্দ করে থাকেন তবে ব্যবহৃত অক্ষরগুলি কোডপয়েন্টস রেঞ্জ [32-126] এ ASCII অক্ষর হতে হবে।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এটি কোডগল্ফ তাই সংক্ষিপ্ততম কোড জিততে পারে।

উদাহরণ

ইনপুট: 1

*

ইনপুট: 2

**

ইনপুট: 3

*
*

ইনপুট: 4

***

ইনপুট: 5

**
 *

ইনপুট: 6

*
**

ইনপুট: 7

*
*
*

ইনপুট: 25

*
***
  *

ইনপুট: 699050

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

ইনপুট: 1047552

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

ইনপুট: 525311

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


না "Booleans মঞ্জুরিপ্রাপ্ত ইনপুট অ্যারের" মানে একটি অ্যারে হিসাবে সংখ্যা এর বাইনারি উপস্থাপনা আকারে ইনপুট গ্রহণ অনুমতি পায়?
নিত

3
@ নিট 1D ইনপুট কোনও ধরণের। সুতরাং সংখ্যাটি যদি 5 হয় তবে আপনার কাছে [1,0,1]হ্যাঁ, এর মতো একটি ইনপুট অ্যারে থাকতে পারে ।
অলিভিয়ার গ্রাগোয়ার

সুতরাং যে ফর্ম্যাট সত্যিই বিনামূল্যে? আমি প্রথম 1 শেষ সরানো সঙ্গে বাইনারি ডিজিট হিসাবে নম্বর নিতে চাই, তাই যেহেতু 9হয় 1001আমি চাই আমার ইনপুট হতে 0011। এটা কি ঠিক আছে?
টন হসপেল

প্রথম বিটটি প্রথম হওয়া 1চ্যালেঞ্জের অংশ, এবং (পুনরায়) সেই বিটটি সরিয়ে নেওয়া চ্যালেঞ্জকে তুচ্ছ করে তুলবে তাই আমি ভয় পাচ্ছি আমি আপনাকে না, @ টনহোস্পেল বলব। আপনি প্রোগ্রামে এটি আপনার ইনপুট থেকে সরাতে পারেন, যদিও।
অলিভিয়ার গ্রাগোয়ার

উত্তর:


7

জেলি , 8 বাইট

¬œṗ+\Ṭz0

একজন পরমাণুসদৃশ্য লিংক বেশী এবং zeros একটি তালিকা হিসাবে একটি সংখ্যা গ্রহণ (যেমন 13হয় [1,1,0,1]) বেশী এবং zeros তালিকা একটি তালিকা ফেরার যেখানে প্রথম তালিকা প্রথম সারিতে রয়েছে।

এটি অনলাইন চেষ্টা করুন! অথবা একটি ফর্ম্যাট টেস্ট স্যুট দেখুন

কিভাবে?

¬œṗ+\Ṭz0 - Link: list L           e.g. [1,1,0,0,1,1,0,1] (i.e. 205)
¬        - logical NOT L               [0,0,1,1,0,0,1,0]
    \    - cumulative reduce L by:
   +     -   addition                  [1,2,2,2,3,4,4,5]
 œṗ      - partition @ truthy indices  [[1,2],[2],[2,3,4],[4,5]]
     Ṭ   - un-truth (vectorises)       [[1,1],[0,1],[0,1,1,1],[0,0,0,1,1]]
      z0 - transpose with filler 0     [[1,0,0,0],[1,1,1,0],[0,0,1,0],[0,0,1,1],[0,0,0,1]]
         -                        i.e.  1000
                                        1110
                                        0010
                                        0011
                                        0001

11

এমএটিএল , 14 বাইট

J_iB^YsJ+'o-'&XG

স্থানাঙ্ক (0,0) থেকে শুরু করে পথ হিসাবে গ্রাফিকাল আউটপুট উত্পাদন করে। এমএটিএল অনলাইন এ চেষ্টা করুন ! অথবা নীচে কিছু অফলাইন উদাহরণ দেখুন:

  • ইনপুট 7:

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

    আউটপুট:

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

  • ইনপুট 699050:

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

    আউটপুট:

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

আপনি যদি পছন্দ করেন তবে 9 টি বাইটের জন্য জটিল স্থানাঙ্ক হিসাবে আপনি পথটি দেখতে পারেন :

J_iB^YsJ+

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

ব্যাখ্যা

J_      % Push -1j (minus imaginary unit)
i       % Push input number
B       % Convert to binary. Gives an array of 0 and 1 digits
^       % Power, element-wise. A 0 digit gives 1, a 1 digit gives -1j
Ys      % Cumulative sum. Produces the path in the complex plane
J+      % Add 1j, element-wise. This makes the complex path start at 0
'o-'    % Push this string, which defines plot makers
&XG     % Plot

7

এমএটিএল , 10 বাইট

YsG~YsQ1Z?

বাইনারি অঙ্কের একটি অ্যারে ইনপুট করে। একটি ম্যাট্রিক্স আউটপুট দেয়।

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

ব্যাখ্যা

Ys    % Implicit input: array of binary digits. Cumulative sum. This gives the
      % row coordinates
G     % Push input again
~     % Negate: change 0 to 1 and 1 to 0
Ys    % Cumulative sum
Q     % Add 1. This gives the column coordinates
1Z?   % Matrix containing 1 at those row and column coordinates and 0 otherwise.
      % Implicit display


6

কাঠকয়লা , 22 20 19 11 10 বাইট

F⮌S¿Iι↑*←*

এখনও আমার দ্বিতীয় চারকোল উত্তর।

ইনপুটটিকে বাইনারি-স্ট্রিং (যেমন 699050হিসাবে 10101010101010101010) নেয়।

-9 বাইটস @ নীলকে পিছনের দিকে লুপ করার পরামর্শ দেওয়ার জন্য ধন্যবাদ ।

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

ব্যাখ্যা:

বিপরীত ক্রমে স্ট্রিং হিসাবে STDIN পড়ুন:

Reverse(InputString())
⮌S

তার বাইনারি অঙ্কগুলি স্ট্রিং হিসাবে লুপ করুন ι:

For(Reverse(InputString()))
F⮌S

যদি ιকোনও সংখ্যায় ফিরে কাস্ট করা হয় তবে *উপরের দিকে প্রিন্ট করুন , অন্যথায় *বাম দিকে মুদ্রণ করুন ।

If(Cast(i)) Print(:Up,"*"); Else Print(:Left,"*");
¿Iι↑*←*

1
এটি অর্ধেক হবে যদি আপনি স্ট্রিংটি বিপরীতে মুদ্রণ করেন, শেষে শুরু করে এবং কাজ করে এবং বামে।
নীল

@ নীল ওকে, এখন এটি ঠিক করা উচিত। ধন্যবাদ! -8 বাইট
কেভিন ক্রুইজসেন

1
{}এস অপসারণ করে অন্য একটি বাইট সংরক্ষণ করুন ।
নীল

1
Baseশুধুমাত্র খরচ 1 বাইট আপনি প্রয়োজন নেই যেমন Castসব সময়ে: F⮌↨N²¿ι↑*←*
নীল

1
@ কেভিন ক্রুজসেন দেরিতে জবাবের জন্য দুঃখিত, তবে আপনার প্রশ্নের উত্তর দেওয়ার জন্য: -vচারকোল যেহেতু একটি গল্ফিং ভাষা হিসাবে ডিজাইন করা হয়েছিল, এবং আমি কেবল টাইপ করা এবং বুঝতে সহজ করার জন্য ভারবোজ মোড যুক্ত করেছি। (আপনি চাইলে আমি একটি যোগ করতে পারি)। -aসংক্ষেপে --ast, আমি এটিকে যুক্ত করেছি (পাইটেক বিটিডব্লিউ থেকে নেওয়া ফর্ম্যাট) যতটা সম্ভব সাফল্যের সাথে সামান্য কোডটি বোঝার জন্য আমাকে সহায়তা করুন: পি (এবং আপনি দুর্ঘটনাক্রমে যুক্তি আদেশটি গোলমাল করার সময় এটি সত্যিই সহায়তা করে)। এছাড়াও, -lএটি একটি পৃথক বিকল্প নয়। ( -hকমান্ড-লাইন আর্গগুলির বর্ণনা / বিবরণে কেবল সহায়তার জন্য করুন)
ASCII-

6

সি # (.নেট কোর) , 155 123 120 113 101 বাইট

বিটগুলির অ্যারে হিসাবে ইনপুট পাওয়ার কারণে 32 বাইট সংরক্ষণ করা হয়েছে।
7 বাইট সংরক্ষণ করেছেন @ অহমানকে ধন্যবাদ।
@ কেভিন ক্রুজসেনকে 10 বাইট সংরক্ষণ করা হয়েছে।

n=>{var m="";for(int i=0,c=1;i<n.Length;)m+=n[i++]<1?c++%1+"":(i>1?"\n":"")+"0".PadLeft(c);return m;}

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


না পরিবর্তন করতে পারি +new string(' ',c)+"*"থেকে +"*".PadLeft(c)(সংরক্ষণ 7 বাইট)?
auhmaan

@auhman আপনি ঠিক বলেছেন, ধন্যবাদ!
ইয়ান এইচ।

-4 মুদ্রণ দ্বারা বাইট 0পরিবর্তে *: if(n[i++]<1){m+="*";c++;}থেকে if(n[i++]<1)m+=c++%1;এবং "*".PadLeft(c);থেকে"0".PadLeft(c);
কেভিন Cruijssen

কারেকশন, এটি একটি প্রকৃত -12 বাইট কারণ m+=এখন একটি তিন-যদি হতে পারে:m+=n[i++]<1?c++%1+"":(i>1?"\n":"")+"0".PadLeft(c);
কেভিন Cruijssen

1
কেভিন ক্রুইজসেন ধন্যবাদ, এর ব্যবহার করে 0এবং টের্নারি অপারেটরের ব্যবহার সত্যিই স্মার্ট! আমি কেসটিও ঠিক করেছিলাম 699060, কেবল cএকটি শুরুতে সেট করে, আমি পরীক্ষার কেসগুলি পরীক্ষা করার সময় মিস করেছি missed
ইয়ান এইচ।

5

05 এ বি 1 , 18 17 14 বাইট

γ€gć¸s>«1IÔ·ÌΛ

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

ব্যাখ্যা

γ€g             # Push the input as the array as chuncks of consecutive elements, map with length
   ć¸s>«        # Increment each value except the first one
        1I      # Push 1 and the input       
          Ô     # Push connected uniquified input (first elements of each chunck of consecutive elements in the input)
           ·Ì   # Map each with 2 * a + 2
             Λ  # Draw canvas :-)
  • 3 বাইট @ এমিগানাকে ধন্যবাদ

05AB1E ক্যানভাসের ব্যাখ্যা


1
γ€gć¸s>«1IÔ·ÌΛ4 বাইট সংরক্ষণ করা উচিত
এমিগনা

এমিলিগা ব্রিলিয়ান্ট, ধন্যবাদ! সম্পূর্ণরূপে ভুলে গিয়েছিলাম যে একটি +2
বিল্টিন


3

হাস্কেল , 65 বাইট

f(a:b)|a="*":f b|(x:y)<-f b=('*':x):map(' ':)y
f[]=["*"]
f.tail

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

বুলিয়ানগুলির তালিকা হিসাবে ইনপুট নেয়।

কারি পাকসিএস, 70 বাইট

u(a:b)=('*':a):map(' ':)b
f(a:b)|a="*":f b|1>0=u$f b
f[]=["*"]
f .tail

হাস্কেলের উত্তর বন্দর, তবে <-কারিতে কাজ করে না বলে আমাদের একটি সহায়ক ফাংশন তৈরি করা দরকার u। আমাদের মাঝে fএবং এর মধ্যে একটি স্থান যুক্ত করতে হবে .যাতে কারি এটিকে বিন্দুর পরিবর্তে একটি রচনা হিসাবে পার্স করে।

এটি এমসিসি কারিতেও কাজ করে, তবে স্লোথ কারিতে কাজ করে না (এটি কেবলমাত্র টিআইও সমর্থিত)


3

হাস্কেল , 74 70 67 62 বাইট

tail.("\n"%)
s%(x:r)=([1..x]>>s)++'*':(s++[' '|x<1])%r
s%[]=""

এটি অনলাইন চেষ্টা করুন! ইনপুট হিসাবে শূন্য এবংগুলির একটি তালিকা নেয় এবং একটি নতুন লাইন পৃথক স্ট্রিং দেয়।

এক্সনরের উত্তরে অনুপ্রাণিত ।



1
@ ইউজার 6665 turn6 আবার আপনার পালা :)
লাইকনি

3

ইমোজিকোড , 251 বাইট

🐖🎅🏿🍇🍦b🔡🐕2🍦c🔤*🔤🍮e🔤🔤🍮y🔤🔤🍦k🍡b🔂i k🍇🍊😛🔡i🔤1🔤🍇🍊😛y e🍇🍉🍓🍇😀y🍉🍮y🔤🔤🍮y🍪e c🍪🍉🍓🍇🍮y🍪y c🍪🍮e🍪🔤 🔤 e🍪🍉🍉😀y🍉

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

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

Explaination:

🐋 🚂 🍇    👴 Define Class
🐖🎅🏿🍇    👴 Define Method
🍦b🔡🐕2    👴Convert Input integer to binary string
🍦c🔤*🔤    👴 asterisk string
🍮e🔤🔤    👴 Spacing string
🍮y🔤🔤    👴 output string
🍦k🍡b    👴 translate to iteratable
🔂i k🍇    👴 for-in loop to iterate over each digit 
🍊😛🔡i🔤1🔤🍇    👴 if digit is 1:
🍊😛y e🍇🍉    👴 don't print initial newline
🍓🍇😀y🍉    👴 print spaces + asterisks
🍮y🔤🔤    👴 reset output string
🍮y🍪e c🍪🍉    👴 add correct number of spaces and one asterisk
🍓🍇    👴 if digit is 0:
🍮y🍪y c🍪    👴 add an asterisk to the output string
🍮e🍪🔤 🔤 e🍪    👴 add another space to the space string
🍉🍉
😀y    👴 print one last output string
🍉🍉
🏁🍇    👴 Start Program
 🎅🏿 699050    👴 Call Method
🍉

2

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

নীচে পুনরাবৃত্ত সংস্করণ হিসাবে একই আই / ও ফর্ম্যাট এবং একই যুক্তি।

a=>a.map((n,i)=>n?i&&p+0:+(p+=' '),p=`
`).join``

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

অথবা এই ফর্ম্যাটটি গ্রহণযোগ্য হলে 42 বাইট


পুনরাবৃত্ত সংস্করণ, 56 বাইট

পূর্ণসংখ্যার অ্যারে হিসাবে ইনপুট নেয় (0 বা 1)। 0খালি জন্য ভরাট এবং স্থান জন্য ব্যবহার করে ।

f=([n,...a],p=`
`,x=0)=>1/n?(n?x+0:+(p+=' '))+f(a,p,p):a

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

মন্তব্য

f = (               // f = recursive function taking:
  [n, ...a],        //   n = current bit; a[] = remaining bits
  p = `\n`,         //   p = padding string, initialized to a linefeed
  x = 0             //   x = 0 on the 1st iteration / equal to p after that
) =>                //
  1 / n ?           // if n is defined:
    ( n ?           //   if n = 1:
        x + 0       //     append x + 0 --> either the integer 0 on the first iteration
                    //                      or the padding string followed by a '0'
      :             //   else:
        +(          //     append the integer 0 (whitespace coerced to a number)
          p += ' '  //     and append a space to the padding string
        )           //
    ) + f(a, p, p)  //   append the result of a recursive call with x = p
  :                 // else:
    a               //   append the empty array a[], forcing coercion to a string

2

বাশ + জিএনইউ ইউটিলিটিস, 38

dc -e?2op|sed 's/\B1/^K^H*/g;s/[10]/*/g'

এখানে ^Kএবং ^Hআক্ষরিক উল্লম্ব-ট্যাব এবং ব্যাকস্পেস নিয়ন্ত্রণের অক্ষর। এগুলি ব্রাউজারগুলিতে ভাল রেন্ডার করে না, সুতরাং এই স্ক্রিপ্টটি নীচে হিসাবে আবার তৈরি করা যেতে পারে:

base64 -d <<< ZGMgLWU/Mm9wfHNlZCAncy9cQjEvCwgqL2c7cy9bMTBdLyovZyc= > binpath.sh

একটি টার্মিনাল চালান। ইনপুটটি এসটিডিনের মাধ্যমে।

এই উত্তরটি স্পেসিফিকেশনগুলি খুব বেশি প্রসারিত করতে পারে - বাস্তবে আউটপুটের প্রতিটি লাইনে কোনও শীর্ষস্থানীয় অক্ষর নেই - সমস্ত অবস্থান নিয়ন্ত্রণ ক্যারেক্টার দিয়ে সম্পন্ন হয়। যদি এটি প্রসারিতের পরিমাণ খুব বেশি হয় তবে আউটপুটটি |col -x|tacঅতিরিক্ত 11 বাইটে পাইপ করা যেতে পারে ।


2

ব্যাচ, 113 বাইট

@set s=
:l
@shift
@if %1.==0. set s=%s%+&goto l
@echo %s%+
@if not %s%.==. set s=%s:+= %
@if %1.==1. goto l

কমান্ড-লাইন আর্গুমেন্ট হিসাবে বিটের একটি তালিকা নেয়। ব্যবহার +পরিবর্তে *কারণ *ভিতরে একটি বিশেষ অর্থ %s:...=...%প্রসারণও।


2

জাভা 10, 100 106 বাইট

b->{var s="";int i=0,j;for(var c:b){if(c)for(s+="\n",j=i;j-->0;)s+=0;else++i;s+=1;}return s.substring(1);}

বুলিয়ানগুলির একটি অ্যারে নেয় এবং একটি স্ট্রিং দেয় ( 0গুলি খালি রয়েছে,1 গুলি ভরাট)। এটি এখানে অনলাইনে চেষ্টা করুন

ধন্যবাদ অলিভিয়ার গ্রাগোয়ারকে আমাকে আরও বেশি গল্ফ এবং আমার আউটপুট ফর্ম্যাটটি নির্দিষ্ট করে দেওয়ার বিষয়টি সম্পর্কে আমাকে সতর্ক করার জন্য।

অবরুদ্ধ সংস্করণ:

b -> { // lambda taking an array of booleans as argument
    var s = ""; // the output String
    int i = 0,  // the number of "empty" characters to output
    j;          // iterator variable for outputting the "empty" characters
    for(var c : b) { // iterate over the boolean array (the binary digits)
        if(c) // if it's a '1'
            for(s += "\n", // output a newline
            j = i; j-- > 0;) s += 0; // output the "empty" characters
        else // if it's a '0'
            ++i; // move one to the right on the next line
        s += 1; // output the "filled" character
    }
    return s.substring(1); // output the constructed String, minus the leading newline
}

আমি 5 বাইট গল্ফ করেছি:{if(c){s+="\n";for(j=i;j-->0;)s+=0;}else++i;s+=1;}
অলিভিয়ার

আরও আরও:{if(c)for(s+="\n",j=i;j-->0;)s+=0;else++i;s+=1;}
অলিভিয়ার গ্রাগোয়ার

যদিও আপনি প্রথম লাইনে ছাপবেন না তবে দ্বিতীয় লাইনে। চ্যালেঞ্জ থেকে: "কোনও নেতৃস্থানীয় স্পেস (বা" ফাঁকা "চর) / লাইন অনুমোদিত নয়"
অলিভিয়ের গ্রাগোয়ার

@ অলিভিয়ারগ্রোওয়ের ধন্যবাদ আমি সম্পাদনা করেছি।
ওব্লান্স


1

হাস্কেল , 126 বাইট

(#)n=maximum.map(!!n)
f l|s<-scanl1(zipWith(+))$(\a->[1-a,a])<$>l=unlines[[last$' ':['#'|elem[x,y]s]|x<-[0..0#s]]|y<-[1..1#s]]

জিরো এবং তাদের তালিকা হিসাবে ইনপুট করুন। সংখ্যাকে অফসেটে রূপান্তর x↦[1-x,x]করে আংশিক অঙ্কগুলি গণনা করে। চূড়ান্ত আউটপুট দুটি নেস্টেড তালিকা বোঝার সাথে সম্পন্ন হয়।

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


1

আর , 59 বাইট

function(n,x=sum(n|1))matrix(1:x^2%in%cumsum((n-1)%%x+1),x)

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

বিটের অ্যারে হিসাবে ইনপুট নেয়।

একটি বুলিয়ান ম্যাট্রিক্স ফেরত পাঠায় TRUEএবং FALSEএকটি প্রতিনিধিত্বমূলক *এবংযথাক্রমে করে।

টেস্টের স্বাচ্ছন্দ্যের জন্য উপরের চশমাগুলির সাথে ম্যাট্রিক্স প্রিন্ট করার জন্য ফুটারে কিছু স্টাফ রয়েছে।


1

এপিএল + উইন, 65 বা 46 বাইট

পূর্ণসংখ্যা ইনপুট জন্য অনুরোধ

n←+/i←((1+⌊2⍟n)⍴2)⊤n←⎕⋄m←(n,n)⍴' '⋄m[⊂[2](+\i),[1.1]1++\~i]←'*'⋄m

বা পূর্ণসংখ্যার বাইনারি উপস্থাপনার সংখ্যার ভেক্টরের জন্য

m←(2⍴+/n←⎕)⍴' '⋄m[⊂[2](+\i),[1.1]1++\~i]←'*'⋄m

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


1

পাইথ, 23 বাইট

p\*VtQINp+b*Zd.?=hZ)p\*

এখানে চেষ্টা করুন

ব্যাখ্যা

p\*VtQINp+b*Zd.?=hZ)p\*
p\*                       Print the leading *.
   VtQ                    For each bit (excluding the leading 1)...
      IN      .?   )      ... If the bit is set...
        p+b*Zd            ... Print a newline and a bunch of spaces...
                =hZ       ... Otherwise, increase the count of spaces...
                    p\*   ... Then print the next *.


1

স্মাইলব্যাসিক, 64 59 57 বাইট

INPUT N@L
GPSET X,Y
B=N<0X=X+B
Y=Y+(X>B)N=N<<1ON!N GOTO@L

সর্বোচ্চ বিট (সাইন বিট) চেক করা হয় এবং এটি যদি 1 হয় তবে এক্স অবস্থানটি বৃদ্ধি পায়। যদি সাইন বিটটি X অবস্থানের চেয়ে কম হয় (যা, সাইন বিট 0 হয় এবং এক্স 0 হয় না) তবে Y অবস্থানটি বৃদ্ধি পায়।

প্রথম আন্দোলন সর্বদা অনুভূমিকভাবে থাকবে, তাই ওয়াই চলাচল প্রথম এক্স আন্দোলনের পরে অবরুদ্ধ থাকবে। এটি নিশ্চিত করে যে নেতৃস্থানীয় 0 বিটের সময় ওয়াই অবস্থানটি বাড়বে না।

তারপরে এনকে বামে স্থানান্তরিত করা হবে এবং এন 0 এ পৌঁছা পর্যন্ত এটি পুনরাবৃত্তি করবে।



1

জাপট , 19 17 বাইট

Ë?R+Tî +QT©Qìx
Ë?                 // Map over the input and if the current value is 1:
  R+               // Return a new line and
    Tî +           // a space repeated T (with initial value 0) times and
        Q          // a \".
         :         // If the current value is 0:
          °T       // Increment T
            ©Q     // and return \".
              Ã    // When all of that is done,
               ¬   // turn the array into a string
                x  // and trim it, removing the excess new line at the start.

বিটের অ্যারের হিসাবে ইনপুট নেয়, উদাহরণস্বরূপ [1,0,1], "পরিবর্তে আউটপুট *
ধন্যবাদ বন্ধ দুই বাইট চাঁচা অলিভার

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


সুন্দর. আপনি প্রতিস্থাপন করতে পারেন SpTসঙ্গে - îঅনুরূপ হয় pএটি অক্ষমতা ছাড়া, " "। এছাড়াও, এর জন্য একটি শর্টকাট রয়েছে q :¬
অলিভার

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

1

পাইথন 2, 113 বাইট

def f(a):
 o='*';r=[o]
 for i in bin(a)[3:]:
  if'0'<i:r+=[' '*len(r[-1][1:])]
  r[-1]+=o
 print'\n'.join(r)

নিশ্চিত না যে এটির একটি গণনা করা হয়েছে (এটি প্রতিটি লাইনের একটি অ্যারের আউটপুট দেয়), তবে যদি তাই হয় তবে আমি আমার বাইট গণনাটি 103 এ পরিবর্তন করব:

def f(a):
 o='*';r=[o]
 for i in bin(a)[3:]:
  if'0'<i:r+=[' '*len(r[-1][1:])]
  r[-1]+=o
 print r

1

টিআই-বেসিক (টিআই -৪৮ প্লাস সিই), 85 বাইট

Prompt L
1→X
1→Y
DelVar [A]
sum(LL
{Ans,1-Ans+dim(LL→dim([A]
1→[A](Y,X
For(I,2,dim(LL
Y+LL(I→Y
X+not(LL(I→X
1→[A](Y,X
End
[A]

বুলিয়ান তালিকার জন্য প্রম্পট দেয়, 0 এবং 1 এর ম্যাট্রিক্স দেয়।

তালিকার মধ্য দিয়ে যায়, পরের 'বিট' 0 হলে এক্স বাড়িয়ে দেওয়া, অন্যথায় Y পরিবর্তন করা, তারপরে সেই অবস্থানে ম্যাট্রিক্সে 1 যুক্ত করে এবং শেষে ম্যাট্রিক্স প্রদান করে।

টিআইবি-বেসিক একটি হল tokenized lanugage

  • 1 বাইট: Prompt , L* 6, (সম্পর্কে newline) * 12, 1* 5, * 7, X* 5, Y* 5, sum(, L* 5, {, Ans* 2, ,* 5, -, +* 3, dim(* 3, (* 4, For(, I* 3, 2, not(, End73 বাইট =
  • 2 বাইট: Delvar , [A]* 5 = 12 বাইট
  • মোট: 85 বাইট

টিআই-বেসিক (টিআই -৪৪ প্লাস সিই), 56 বাইট

Prompt L
1→X
1→Y
Output(Y,X,"*
For(I,2,dim(LL
Y+LL(I→Y
X+not(LL(I→X
Output(Y,X,"*
End

উপরের মত একই প্রক্রিয়াগুলি, তবে গ্রাফিকাল আউটপুট (পর্দার আকারের দ্বারা সীমাবদ্ধ: 10 সারি, 26 কলাম, সুতরাং সর্বোচ্চ 10 1s এবং 25 0 সে) ব্যবহার যেমন ম্যাট্রিক্সে যুক্ত না করে using



1

x86 .কম, 32 বাইট

00h: 66 D1 E6 66 0F BD CE BF 24 AD 8E DF 41 66 0F A3 
10h: CE 19 DB 81 E3 9E 00 8D 79 02 C6 05 2A E2 EE C3 

fun:
shl esi, 1
bsr ecx, esi
mov di, $ad24
mov ds, di
inc cx
lab2:
bt esi, ecx
sbb bx,bx
and bx,158
lea di,[di+2+bx]
mov [di],byte '*'
lab1:loop lab2
ret  

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