বাইনারি শাখা


15

একটি বাইনারি নম্বর দেওয়া আপনার কাজটি 2 এর গভীরতা সহ সেই সংখ্যাটির একটি 'শাখা' তৈরি করা।

উদাহরণস্বরূপ, 0ইনপুট হিসাবে দেওয়া , আপনি ঠিক এই আউটপুট করা উচিত:

     /000
  /00
 /   \001
0
 \   /010
  \01
     \011

শাখাগুলি কীভাবে তৈরি করা উচিত সে সম্পর্কে এটি মোটামুটি স্ব-বর্ণনামূলক হওয়া উচিত। গভীরতা 2 এর অর্থ আমরা 2 টি সংখ্যা পর্যন্ত দীর্ঘ সংখ্যার জন্য শাখাগুলি গণনা করি। আমরা শীর্ষে শূন্যগুলি এবং নীচের অংশগুলিতেও শাখাগুলি ক্রমানুসারে গণনা করি।

আরও পরীক্ষার কেস:

0

     /000
  /00
 /   \001
0
 \   /010
  \01
     \011

1

     /100
  /10
 /   \101
1
 \   /110
  \11
     \111

00

       /0000
   /000
  /    \0001
00
  \    /0010
   \001
       \0011

01

       /0100
   /010
  /    \0101
01
  \    /0110
   \011
       \0111

10

       /1000
   /100
  /    \1001
10
  \    /1010
   \101
       \1011

11

       /1100
   /110
  /    \1101
11
  \    /1110
   \111
       \1111

বিধি

  • আপনি ইনপুট অক্ষর ছাড়া অন্য গ্রহণ করবে না 1এবং 0
  • 0 < length of input < 11
  • লাইনের শেষের দিকে শ্বেত স্পেস অনুসরণ করার অনুমতি দেওয়া হয়েছে।

4
0 < length of input < 11হয় 11দশমিক বা বাইনারি? : পি
ইটিএইচ প্রডাকশনগুলি

@ ইথ প্রডাকশন দশমিক: পি
Okx

উত্তর:


4

জেলি , 39 38 বাইট

L⁶ẋ,W;“/0¶\1 ”ṃ@“ð&ẏ{×ẏĊfẏȷ®ỤṪ⁻ʠaƇGⱮȷ’

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

কিভাবে?

মুদ্রণযোগ্য শিল্পটি হ'ল:

L  L /N00
L /N0
L/ L \N01
N
L\ L /N10
L \N1
L  L \N11

Nইনপুট স্ট্রিংটি কোথায় এবং ইনপুট স্ট্রিংয়ের Lদৈর্ঘ্যের ফাঁকের একটি স্ট্রিং।

যেমন আটটি উপাদান গঠিত হয় ( L, N, /, 0, NEWLINE চরিত্র, \, 1, এবং স্থান চরিত্র) এবং অত: পর একটি বেস-8 নম্বর (যা জেলি মধ্যে একটি বেস-250 নম্বর হিসাবে কম্প্রেস করা থাকতে পারে) হিসেবে সংরক্ষিত হতে পারে। পরমাণু সম্মিলন বেস রূপান্তর এবং একটি তালিকায় ইন্ডেক্স (কার্যকরভাবে এক অবাধ সংখ্যার সংজ্ঞায়িত পারে ব্যবহৃত হবে)।

L⁶ẋ,W;“/0¶\1 ”ṃ@“ð&ẏ{×ẏĊfẏȷ®ỤṪ⁻ʠaƇGⱮȷ’ - Main link: binary string s  e.g. "100"
 ⁶                                     - space character
  ẋ                                    - repeat by:
L                                      -     length(s)                    [' ',' ',' ']
    W                                  - wrap s in a list                 [['1','0','0']]
   ,                                   - pair               [[' ',' ',' '],['1','0','0']]
      “/0¶\1 ”                         - char list: ['/','0',<newline>,'\',','1',' ']

     ;                                 - concatenate        [[' ',' ',' '],['1','0','0'],'/','0',<newline>,'\',','1',' ']
                “ð&ẏ{×ẏĊfẏȷ®ỤṪ⁻ʠaƇGⱮȷ’ - base 250 number: 91531517467460683226372755994113932025707662527
              ṃ@                       - base decompression [reversed @arguments]
                                        -     this uses the concatenated list above as
                                        -     the 8 digits of that number in base 8.
                                        - implicit print

5

ব্যাচ, 178 170 159 বাইট

@set/pb=
@set s=%b:0= %
@set s=%s:1= %
@set e=@echo %s%
%e%  %s% /%b%00
%e% /%b%0
%e%/ %s% \%b%01
@echo %b%
%e%\ %s% /%b%10
%e% \%b%1
%e%  %s% \%b%11

সম্পাদনা করুন: @ কনোরও ব্রায়েনকে 11 বাইট সংরক্ষণ করা হয়েছে।


আমি কেবল 149 বাইট গণনা করি ।
ইঞ্জিনিয়ার টোস্ট 16

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

4

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

s=>`22   /300
2 /30
2/2  4301
3
242  /310
2 431
22   4311`.replace(/./g,n=>[s.replace(/./g,' '),s,'\\'][n-2]||n)

ডেমো


কেন না [n,n,s.replace(/./g,' '),s,'\\'][n]?
tsh

@tsh এর জন্য অ- সংখ্যািক অক্ষরগুলিকে উপেক্ষা করার /\d/gপরিবর্তে অনুসন্ধান করা দরকার /./g
আর্নৌল্ড

4

পাইথন 3 , 117 109 বাইট

lambda k:'ll   /g00\nl /g0\nl/l  \g01\ng\nl\l  /g10\nl \g1\nll   \g11'.replace('l',' '*len(k)).replace('g',k)

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

  • জোনাথন অ্যালানকে ধন্যবাদ 8 বাইট সংরক্ষণ (ল্যাম্বদা ফাংশন ব্যবহার)

মুদ্রিত হওয়ার পরে ফর্ম্যাট স্ট্রিংয়ের মতো দেখাচ্ছে:

ll   /g00
l /g0
l/l  \g01
g
l\l  /g10
l \g1
ll   \g11

এটি 1 দৈর্ঘ্যের স্ট্রিংয়ের জন্য ইতিমধ্যে ভাল দেখাচ্ছে আমরা যা করতে পেরেছি তা হ'ল g এর সমান দৈর্ঘ্যের স্পেস দ্বারা l কে প্রতিস্থাপন করতে হবে এবং অবশ্যই g কে মূল স্ট্রিং দ্বারা প্রতিস্থাপন করতে হবে


1
আপনি নামবিহীন ল্যাম্বদা ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন, যার অর্থ আপনি মুদ্রণ থেকে মুক্তি পেতে পারেন (যেহেতু স্ট্রিংটি ফেরানো গ্রহণযোগ্য হবে) এবং আরও সাতটি বাইট সংরক্ষণ করতে পারেন। তারপরে আপনি মাল্টিলাইন স্ট্রিংটি আপনাকে 107 এ নামিয়ে আরও দুটি সঞ্চয় করতে পারবেন ... টিআইও
জনাথন অ্যালান

4

পাইথন 3.6, 172 153 128 বাইট

আক্ষরিকভাবে এর চেয়ে বেশি সোজা হয়ে ওঠে না ... এটি একটি অ্যালগোরিদম দিয়ে তৈরি করার ক্ষেত্রে আমার মূল প্রয়াসের তুলনায় এটি সংক্ষিপ্ত। দুঃখজনক.

k=input()
l=len(k)
b=' '*l
print(f'{b*2}   /{k}00\n{b} /{k}0\n{b}/ {b}\\{k}01\n{k}\n{b}\\ {b}/{k}10\n{b} \\{k}1\n{b*2} \\{k}01')

-19 বাইটস
@ লিও -২২২২ বাইটসকে ধন্যবাদ জানায় @ এল৩৩৩৩ লিথনে


আমি মনে করি এটি একটি, সি এবং ডি ড্রপ করা আরও কম হবে এবং চূড়ান্ত স্ট্রিংয়ে কেবল খ এবং স্পেস ব্যবহার করবে। (একটি হয় b*2+' ')
লিও

অদ্ভুত, এখনও আমার কাছে 172 বাইট মনে হচ্ছে।
programmer5000

@ programmer5000 দুঃখিত, এটি কারণ কোডটি নিজেই আপডেট করতে ভুলে গেছি।
হাইপারনিউটারিনো

ফর্ম্যাট স্ট্রিং সহ 26 টি অক্ষর সংরক্ষণ করুন:print(f'{a}/{k}00\n{b} /{k}0\n{b}/ {b}\\{k}01\n{k}\n{b}\\ {b}/{k}10\n{b} \\{k}1\n{b*2} \\{k}01')
L3viathan

@ L3viathan আপনি কি সিনট্যাক্সটি পরীক্ষা করতে পারেন? এটি আমাকে একটি সিনট্যাক্স ত্রুটি দিচ্ছে।
হাইপারনিউটারিনো

3

সি, 170 168 বাইট

দুটি নাইট সংরক্ষণের জন্য @ নীলকে ধন্যবাদ!

n;f(char*s){n=strlen(s);printf("%*c%s00\n%*c%s0\n %*c%*c%s01\n%s\n %*c%*c%s10\n%*c%s1\n%*c%s11",2*n+4,47,s,n+2,47,s,n,47,n+3,92,s,s,n,92,n+3,47,s,n+2,92,s,2*n+4,92,s);}

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


1
একটি /বা ` padded to width n + 1 , why not print a space, and then a / printing বা \প্রস্থে প্যাড ছাপানোর চেয়ে n?
নীল

ওহ, আমাকে আবার চেষ্টা করুন। প্রস্থে একটি /বা \প্যাডড মুদ্রণ করার পরিবর্তে n+1, কেন একটি স্থান মুদ্রণ করা হবে না এবং তারপরে একটি /বা \প্রস্থকে প্যাড করা হবে n?
নীল

3

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

lambda s:"""   /00
 /0
/  \01

\  /10
 \1
   \11""".translate([s,' '*len(s),s])

এটি অনলাইন চেষ্টা করুন! মুদ্রণযোগ্য অক্ষরগুলি সঠিকভাবে প্রদর্শিত হয় না; স্ট্রিং ফর্ম্যাটটি অফিএলাইমসের সমান , তবে এর\x01 জন্য lএবং \x02জন্য g

ll   /g00
l /g0
l/l  \g01
g
l\l  /g10
l \g1
ll   \g11

পাইথন 3 এর নমনীয়translate সহ স্ট্রিং প্রতিস্থাপন ব্যবহার করে । অনুবাদ তালিকা [s,' '*len(s),s]মানচিত্র \x01থেকে ' '*len(s)এবং \x02থেকে s। যে কোনও বৃহত্তর অক্ষর অপরিবর্তিত রয়েছে কারণ তারা সূচকগুলি দেয় যা তালিকার বাইরে থাকে। \x00ব্যবহার করা যায়নি কারণ নাল বাইটটি প্রোগ্রামের শেষ হিসাবে পড়া হয়, তাই প্রথম প্রবেশটি নষ্ট হয়।



2

সজ্জিত , 81 বাইট

{!n#'' '*@s's  s /n00
s /n0
s/ s \n01
n
s\ s /n10
s \n1
s  s \n11' '\l'$#~1/repl}

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

দুর্ভাগ্যক্রমে খুব আকর্ষণীয় নয়। এখানে সবচেয়ে আকর্ষণীয় অংশ:

'\l'$#~1/repl
         repl     replace all
'\l'              letters
    $#~           by evaluating
       1/         over one argument (otherwise, it would evaluate the "last" thingy)

এটি মূলত ইন্টারপোলটিংয়ের স্ট্রিং, তবে বিল্টিনের চেয়ে 10 বাইট কম।


2

/// , 116 বাইট

/[/\\\///x///*/[y\\0[ y\/\/y\\1[ y\//**********/y///s/yx//~/  /~ ss[x00
 s[x0
s[~s\\x01
x
s\\~s[x10
 s\\x1
~ ss\\x11

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

ইনপুট নিম্নরূপ:

/[/\\\///x/INPUT HERE!!!!!!!!//*/[y\\0[ y\/\/y\\1[ y\//**********/y///s/yx//~/  /~ ss[x00
 s[x0
s[~s\\x01
x
s\\~s[x10
 s\\x1
~ ss\\x11

একটি মৌলিক টেম্পলেট ব্যবহার করে এবং যেখানে প্রয়োজন সেখানে স্পেস এবং অক্ষর যুক্ত করে কাজ করে।

বাইট গণনাটি আরও বেড়ে গেল কারণ অর্জান জোহানসেন বুঝতে পেরেছিলেন যে এটি প্রথমে স্পেসিং পরিচালনা করে না। তবে সমস্যাটি স্থির রয়েছে।


এটি কাজ করে কিনা তা যাচাই করার আগে আমি আপনাকে একটি উক্তি দিয়েছিলাম - তবে আপনি দৈর্ঘ্যের ব্যবধানটি সামঞ্জস্য করছেন না। এরকম আক্ষরিক ইনপুট ফর্ম্যাট দিয়ে আমি এটি করার কোনও সংক্ষিপ্ত উপায় দেখতে পাচ্ছি না।
janrjan জোহানসেন

অথবা অপেক্ষা করুন, এটি সম্পূর্ণ হতাশ নয় কারণ 11 এর ইনপুট দৈর্ঘ্যের সীমা রয়েছে
janরঞ্জন জোহানসেন

এর মতো কিছু /*/\/y0\/ y\/\/y1\/ y\//**********/y///s/yx/এবং এরপরে আপনি ফাঁক করে দিন s
janrjan জোহানসেন

@ আরজানজোহানসেন উফ, ফাঁক দেওয়ার কথা ভুলে গেছেন ... ধন্যবাদ আমি আপনার কোডটি উত্তরের সাথে কীভাবে অন্তর্ভুক্ত করব?
কমরেড স্পার্কলপনি

FWIW /00/0|0//01/0|1//10/1|0//11/1|1//|/<\\y>//z/<y>x//<y>0/ //<y>1/ //<\\y\>///s/z/নির্বিচার দৈর্ঘ্য পরিচালনা করতে পারে।
janrjan জোহানসেন

1

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

lambda y:'   ++/_00\n +/_0\n+/  +\\_01\n_\n+\\  +/_10\n +\\_1\n   ++\\_11'.replace('_',y).replace('+',' '*len(y))

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

ইনপুটটি 0 বা 1 এর দৈর্ঘ্যের 1 বা 2 এর স্ট্রিং! এটি 0,01,10 বা 11!

+12 বাইট - দৈর্ঘ্য দুটি ইনপুটটির জন্য ব্যবধান ফাঁক করে \


3
আপনার আউটপুট স্ট্রিংয়ের দৈর্ঘ্য অনুযায়ী সামঞ্জস্য করে না।
officialaimm

1
... এবং প্রশ্নটি " 0 < length of input < 11" নির্দিষ্ট করে ।
জোনাথন অ্যালান

1
নিবন্ধন করুন এই মাত্র লক্ষ্য করা হল. ধন্যবাদ। আমার উত্তর আপডেট করবে! জোনাথন .. এটি টাইপো ছিল। ধন্যবাদ আমি এটি সংশোধন করেছি।
কীর্তন প্রভাকরণ

0

কাঠকয়লা , 34 বাইট

P<³←⮌θF²«J³⁻×⁴ι²θP<²Iι↗F²«P⁺⁺θικ↓↓

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

P<³

/S এবং \s এর বাম জোড়া মুদ্রণ করুন

←⮌θ

বর্তমান অবস্থানে ডান-ন্যায়সঙ্গত ইনপুট মুদ্রণ করুন।

F²«

শাখা মাধ্যমে লুপ।

J³⁻×⁴ι²

শাখার অবস্থানটি সরান। আমরা এটি করতে পারি কারণ মূলটি সঠিক-ন্যায়সঙ্গতভাবে ছাপা হয়েছিল যাতে মাঝের শাখাটি সর্বদা একই পরম অবস্থানে থাকে।

θ

ইনপুট মুদ্রণ করুন।

P<²

ডান যুগল মুদ্রণ করুন /এবং \

Iι

শাখা প্রত্যয় মুদ্রণ করুন।

প্রথম পাতায় সরান।

F²«

পাতাগুলি দিয়ে লুপ করুন।

P⁺⁺θικ

ইনপুট এবং শাখা এবং পাতার প্রত্যয় মুদ্রণ করুন।

↓↓

পরের পাতায় সরান। দ্রষ্টব্য: যদি শ্বেত স্পেস অনুসরণ করতে পারা যায় তবে F²⁺⁺⁺θι궶একটি বাইট সংরক্ষণ করতে পারে।

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