বাইনারি সিয়ারপিনস্কি ত্রিভুজ সিকোয়েন্সটি গণনা করুন


23

বাইনারি সিয়ারপিনস্কি ত্রিভুজ অনুক্রমটি এমন সংখ্যার ক্রম যার বাইনারি উপস্থাপনাগুলি বাইনারি সিয়ারপিনস্কি ত্রিভুজের সারি দেয় যা একটি জিরোর এক অসীম সারিতে 1 দিয়ে শুরু করে দেওয়া হয়, তারপরে বার বার প্রতিটি জোড়া বিটের পরিবর্তে সেই বিটের জোর দিয়ে প্রতিস্থাপন করা হয় , তাই ভালো:

f(0)=      1                    =1
f(1)=     1 1                   =3
f(2)=    1 0 1                  =5
f(3)=   1 1 1 1                 =15
f(4)=  1 0 0 0 1                =17

OEIS: আরও সংখ্যার দেওয়া হয়েছে: https://oeis.org/A001317

ইনপুট: আপনার পছন্দ মতো কোনও বিন্যাসে একটি অ-নেতিবাচক পূর্ণসংখ্যা n। (30 টি পর্যন্ত সকলের জন্য অবশ্যই কাজ করা উচিত))

আউটপুট: দশমিক সংখ্যা হিসাবে অনুক্রমের নবম পদ (0-সূচী)।

এটি তাই আপনার ভাষা সক্ষম এমন বাইটে সংক্ষিপ্ত উত্তর দেওয়ার চেষ্টা করুন। কোন উত্তর গৃহীত হবে না। স্ট্যান্ডার্ড লুফোলগুলি প্রয়োগ (উদাহরণস্বরূপ হার্ড-কোডিংয়ের ক্রম নয়) বাদে আপনি এই চ্যালেঞ্জ পোস্ট হওয়ার পরে তৈরি / সংশোধিত কোনও ভাষা ব্যবহার করতে পারেন। (এমন একটি ভাষায় অন্য সমাধান পোস্ট করা এড়াবেন না যা ইতিমধ্যে আপনার সমাধানটি সংক্ষিপ্ত না করে ব্যবহার করা হয়েছে))

লিডারবোর্ড

এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে a) ভাষার প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


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

নিয়মগুলি সঠিকভাবে বুঝতে পেরেছিলে ( এখানে এবং এখানে মন্তব্য দেখুন ) এবং গোলাকার আউটপুট (যেমন, ইনপুট ৩৩ এর জন্য 1.288490189e10) ভুল হিসাবে গণনা করা থাকলে দয়া করে স্পষ্ট করুন ।
ডেনিস

"30 টি পর্যন্ত সমস্ত এন এর জন্য অবশ্যই কাজ করা উচিত এবং কোনও এন এর জন্য কোনও ভুল উত্তর আউটপুট করা উচিত নয়" " । এটি স্ববিরোধী - অবশ্যই "অবশ্যই একটি ভুল উত্তর আউটপুট করা উচিত নয়" "অবশ্যই কাজ করা উচিত" এর সমান ???
ডিজিটাল ট্রমা

5
ইনপুট বৈধতার অযৌক্তিক এবং আত্মা-চূর্ণকারী বোঝার অত্যধিক জনপ্রিয় বিরোধিতার কারণে, এই প্রয়োজনীয়তাটি সরানো হয়েছে। আপনি বড় এন এর জন্য যে কোনও আবর্জনা চান তা আউটপুট করতে পারেন। উপভোগ করুন!
কুইন্টোপিয়া

2
আউটপুটটি ভুল না হওয়া উচিত বলার চেয়ে, আমি কেবল এই পরামর্শ দেওয়ার পরামর্শ দিই যে সাবমিশনগুলিকে সবচেয়ে বড় পর্যন্ত ইনপুট সমর্থন করতে হবে nযার জন্য কোনও কিছুই ওভারফ্লো হয় না।
অ্যালেক্স এ

উত্তর:


14

05 এ বি 1 ই , 5 4 বাইট

আমি গর্বের সাথে আপনার কাছে উপস্থিত করছি, 05AB1E। যদিও এটি খুব সংক্ষিপ্ত, দীর্ঘ চ্যালেঞ্জের সময়ে এটি সম্ভবত খুব খারাপ।

1 বাইট বন্ধ শেভ করার জন্য ইটিএইচ প্রডাকশনসকে ধন্যবাদ :)

$Fx^

ব্যাখ্যা:

$      # Pushes 1 and input
 F     # Pops x, creates a for-loop in range(0, x)
  x    # Pops x, pushes x and 2x
   ^   # Bitwise XOR on the last two elements
       # Implicit, ends the for-loop
       # Implicit, nothing has printed so the last element is printed automatically

আপনি জানেন, একটি কাস্টম ভাষায় অনেকগুলি প্রোগ্রামের বাইটকে গল্ফ করার একটি ভাল উপায় হ'ল একটি ট্রেলিংটি }স্বয়ংক্রিয়ভাবে beোকানো হয়। তাহলে এই 4 বাইট হবে। :)
ETH প্রোডাকশনগুলি

1
@ ইথ প্রডাকশনগুলি এক মিনিট অপেক্ষা করুন, এটি ইতিমধ্যে বাস্তবায়িত হয়েছে :)। 1 বাইট হা হা করে শেভ করার জন্য ধন্যবাদ
আদনান

2
এই কোডটিতে একটি বাগ রয়েছে। আমি কিভাবে জানবো? এটা ডেনিসকে মারছে।
আর্কটরাস

2
@ আম্পোরা কেবল ডেনিসকেই মারধর করছে না, ডেনিসের কাস্টম গল্ফিং ভাষায় মারছে ;)
ETH প্রোডাকশন

@ আদনান বাহ আপনি কিছু আছে।
আরকে


6

জেলি , 6 বাইট

1Ḥ^$³¡

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

জেলি ইন্টারপ্রেটারের এই সংশোধনটির সাথে বাইনারি সংস্করণটি কাজ করে xxd ডাম্প

0000000: 31 a8 5e 24 8b 80  1.^$..

কিভাবে এটা কাজ করে

1Ḥ^$³¡    Input: n

1         Set the left argument to 1.
 Ḥ        Multiple the left argument by two.
  ^       Hook; XOR it with its initial value.
   $      Create a monadic chain from the last two insructions.
    ³¡    Call the chain n times, updating the left argument after each call.

5

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

import Data.Bits
f n=iterate((2*)>>=xor)1!!n

ইন ((->) r)একসংখ্যা, (f >>= g) xসমান g (f x) x


আমার মনে হয় আপনি শেষ লাইন বেনামী করতে(iterate((2*)>>=xor)1!!)
xnor

আমি চেষ্টা করেছিলাম, তবে এটি ভয়ঙ্কর মনোমরফিজম সীমাবদ্ধতার কারণে কার্যকর হয় না।
লিন

যাইহোক, এটি আইনী অভিব্যক্তি হিসাবে প্রযোজ্য হতে পারে, যেহেতু মনোমोर्ফিজম সীমাবদ্ধতা প্রকাশের ক্ষেত্রে প্রযোজ্য নয়, তবে ঘোষণাপত্রগুলি। এবং অভিব্যক্তিগুলিকে আইনী উত্তর হিসাবে বিবেচনা করা হয়, যদি আমার ভুল না হয়।
গর্বিত হাস্কেলর

4

মতলব, 45 বাইট

সমাধান:

@(i)2.^[0:i]*diag(mod(fliplr(pascal(i+1)),2))

টেস্ট:

ans(10)
ans =
1285

ব্যাখ্যা: pascalপাস্কাল ত্রিভুজ গঠন করে তবে এটি 1 থেকে শুরু হয়, সুতরাং ইনপুট হওয়া উচিত i+1fliplrবাম থেকে ডানে অ্যারে ফ্লিপ করে। mod(_,2)বিভাগ দ্বারা 2 এর পরে বাকী অংশ গ্রহণ diagকরে প্রধান তির্যকটি বের করে using ব্যবহার করে বহুগুণ2.^[0:i] ve

আমি আনন্দিত, @ ফ্লোয়ার যে আমি মতলব প্রতিযোগী এখানে পেয়েছি :)


পাশাপাশি অষ্টাভের সাথে কাজ করার কথা মনে হচ্ছে।
ডেনিস

4

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

f=x=>x?(y=f(x-1))^y*2:1

ওইআইএস পৃষ্ঠায় প্রথম সূত্রের ভিত্তিতে। 30 টি ইনপুট শেষ করতে যদি আপনি কোডটি প্রায় চিরকালের জন্য গ্রহণ করতে আপত্তি না করেন তবে আমরা একটি বাইটটি শেভ করতে পারি:

f=x=>x?f(--x)^f(x)*2:1

এখানে একটি forলুপ ব্যবহার করে এখানে একটি পুনরাবৃত্তিযোগ্য সংস্করণ রয়েছে eval: (৩২ বাইট)

x=>eval("for(a=1;x--;a^=a*2);a")

বর্তমানে লিখিত হিসাবে নিয়মগুলি এই উত্তরটি অবৈধ করে দেয়, যেহেতু f(35)প্রত্যাবর্তন হয় 15। এছাড়াও, কাঁটাচামচ বোমা সতর্কতা: ক্রোমিয়ামকে f(30)(আসল সংশোধন) চালানো থেকে থামাতে আমাকে জোর করে বন্ধ করতে হয়েছিল। : পি
ডেনিস

1
@ ডেনিস অপেক্ষা করুন, সুতরাং যদি আমি কোনও ভুল মান আউটপুট করতে না পারি তবে 30 এর চেয়ে বেশি ইনপুটগুলি নিয়ে আমার কী করা উচিত?
ETH প্রোডাকশনগুলি

আমি নিশ্চিত নই (এবং আমি আশা করি নিয়মটি পরিবর্তিত হবে ), তবে এর মতো কিছু f=x=>x?(y=f(x-(x<31)))^y*2:1কাজ করবে।
ডেনিস

@ ডেনিস আহ, অসীম পুনরাবৃত্তি করুন = কোনও আউটপুট নেই। আমি আমার কম্পিউটারে ফিরে এলে আমি এটি ঠিক করব। আমি আশা করি যে নিয়মটিও পরিবর্তিত হবে।
ETH প্রোডাকশনস

প্রশ্ন থেকে নিয়মটি সরানো হয়েছে।
ডেনিস

3

মতলব, 77 70 বাইট

এই ফাংশনটি পাস্কাল ত্রিভুজের এন-তম সারি গণনা করে বারবার সমঝোতার মাধ্যমে [1,1](ওরফে দ্বিপদী প্রসারণ বা দ্বিপদী দ্বারা পুনরাবৃত্তি গুণ) এবং সেখান থেকে সংখ্যা গণনা করে the

function r=c(n);k=1;for i=1:n;k=conv(k,[1,1]);end;r=2.^(0:n)*mod(k,2)'

3

রুবি, 26 বাইট

পুনরাবৃত্তি সহ বেনামে ফাংশন।

->n{a=1;n.times{a^=a*2};a}

এই পুনরাবৃত্তি ফাংশনটি একটি বাইট সংক্ষিপ্ত, তবে এটি নিজের উল্লেখ করতে সক্ষম হওয়ার জন্য এটির নামকরণ করা দরকার, এটি আরও একটি বাইট দীর্ঘ শেষ করে।

f=->n{n<1?1:(s=f[n-1])^s*2}

3

রুবি, 25 বাইট

->n{eval"n^=2*"*n+?1*n=1}

এখন পর্যন্ত এখানে অন্যান্য উত্তরগুলির চেয়ে কম। এটি এই স্ট্রিংটি তৈরি করে:

n^=2*n^=2*n^=2*n^=2*1

তারপরে এটি সেট করে n=1(স্ট্রিং তৈরি করার সময় এটি আসলে ঘটে) এবং ফলাফলটি ফিরিয়ে দিয়ে উপরের স্ট্রিংকে মূল্যায়ন করে।


এটি কি *n=1আসলে কোনও কিছু রক্ষা করতে পারেm=1;"m^=2*"*n+?1
মার্টিন এন্ডার

না, তবে কেবলমাত্র একটি পরিবর্তনশীল দিয়ে এটি করা খুব শোভনীয় :)
লিন

3

সামাউ , 4 বাইট

সামোর এক্সওআর গুণ ও এক্সওআর পাওয়ারের জন্য অন্তর্নির্মিত ফাংশন রয়েছে ।

▌3$ⁿ

হেক্স ডাম্প (সামাউ সিপি 737 এনকোডিং ব্যবহার করে):

dd 33 24 fc

ব্যাখ্যা:

▌       read a number
 3      push 3
  $     swap
   ⁿ    take the XOR power

প্রথম দুটি কমান্ড অদলবদল করে এবং অদলবদলকে বাদ দিয়ে এটি 3 বাইটে কমানো যেতে পারে?
কুইন্টোপিয়া

@ কুইন্টোপিয়া নং সামু স্বয়ংক্রিয়ভাবে একটি স্ট্রিং হিসাবে স্ট্যাকের উপর ইনপুটটি চাপায় এবং স্ট্রিং থেকে একটি সংখ্যা পড়ে। যদি আমরা প্রথম দুটি কমান্ড অদলবদল করি তবে এটি এমন একটি সংখ্যা পড়ার চেষ্টা করবে 3যা স্ট্রিং নয়।
আলেফাল্ফ

কেন সামু সম্ভব হলে স্ট্রিংটি খোলার চেষ্টা করে না?
কুইন্টোপিয়া


2

খাঁটি বাশ (কোনও বাহ্যিক উপযোগ নেই), 37

ব্যাশ পূর্ণসংখ্যাগুলি -৪-বিট স্বাক্ষরিত, সুতরাং এটি 62 এবং এর সমেত ইনপুটগুলির জন্য কাজ করে:

for((x=1;i++<$1;x^=x*2)){
:
}
echo $x

2

পাইথন 2.7.6, 38 33 বাইট

ডেনিসকে কয়েকটা বাইট শেভ করার জন্য ধন্যবাদ!

x=1
exec'x^=x*2;'*input()
print x

1
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! পদ্ধতির exec'x^=x*2;'*input()উপর কয়েকটি বাইট সংরক্ষণ forকরে।
ডেনিস

এটি আমার পাইথনের প্রবেশকে মারধর করে, যা আমি এখানে উত্তরপুরুষদের জন্য রেখে যাব:f=lambda n:f(n-1)^2*f(n-1)if n>0 else 1
জ্যাক ব্রাউনস্টেইন

2

পাইথ, 7 বাইট

uxyGGQ1

অনলাইনে চেষ্টা করুন: বিক্ষোভ

ব্যাখ্যা:

u    Q1   apply the following statement input-times to G=1:
 xyGG        update G with (2*G xor G)


2

এমআইপিএস, 28 বাইট

ইনপুট ইন $a0, আউটপুট ইন $v0

0x00400004  0x24020001          li      $v0, 1
0x00400008  0x10800005  loop:   beqz    $a0, exit
0x0040000c  0x00024021          move    $t0, $v0
0x00400010  0x00021040          sll     $v0, $v0, 1
0x00400014  0x00481026          xor     $v0, $v0, $t0
0x00400018  0x2084ffff          addi    $a0, $a0, -1
0x0040001c  0x08100002          j       loop


1

k4, 26 বাইট

{x{2/:~(=). 0b\:'1 2*x}/1}

0b\:একটি বুলিয়ান ভেক্টর পরিবর্তিত একটি সংখ্যা (অর্থাত bitstring), XOR যাও হিসাবে "সমান নয়" বাস্তবায়িত হয়, 2/:একটি বহুপদী নির্ণয় করা যেমন চিকিত্সা দ্বারা একটি নম্বরে একটি bitstring ফিরে পরিবর্তিত, এবং x f/yসঙ্গে xএকটি পূর্ণসংখ্যা fপ্রয়োগ yপ্রথম, এবং তারপর তার ক্রমাগত ফলাফল আউটপুট x

নমুনা রান:

  {x{2/:~(=). 0b\:'1 2*x}/1}'!5                                                                                                                                                                                    
1 3 5 15 17

1

রুবি, 31 26 বাইট

সম্পাদনা করুন: সম্পূর্ণ আলাদা ভাষায় পরিবর্তিত হয়েছে! সমস্ত গল্ফিং পরামর্শ স্বাগত!

নিজেই দুইবার, অর্থাত সঙ্গে ক্রম-এর পূর্ববর্তী উপাদান XORs, bitwise এই প্রোগ্রামটি f(n) = f(n-1) ^ 2*f(n-1)

->n{v=1;n.times{v^=2*v};v}

1

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

অনুরূপ @ flawr এর উত্তর :

i:1w"TToX+]2\XB

সম্পাদনা (20 মে, 2016) এটি অনলাইনে চেষ্টা করুন! সঙ্গে X+দ্বারা প্রতিস্থাপিত Y+ভাষা সংস্করণ 18.0.0 সাথে সামঞ্জস্য করতে।

উদাহরণ

>> matl i:1w"TToX+]2\XB
> 5
51

ব্যাখ্যা

i              % input                                                     
:              % vector of values 1, 2, ... to previous input                           
1              % number literal                                            
w              % swap elements in stack                                    
"              % for                                                       
    TTo        % vector [1 1]
    X+         % convolution                                               
]              % end                                                       
2\             % modulo 2
XB             % convert from binary to decimal              

1

ব্রেনফাক , 87 বাইট

,[>>[>]++<[[->+>+<<]>-->[-<<+>>]<[>+<-[>-<-]]>+<<<]>>>[[-<+>]>]<<[<]<-]>>[<[->++<]>>]<+

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

অসীম আকারের ঘর ধরে রাখুন (অন্যথায় এটি অতীতের 7 পেতে পারে না, যা সুবিধাজনকভাবে 255)। ব্যয়বহুল মোড 2 অপারেশনের কারণে পাস্কালের ত্রিভুজ মোড 2 পদ্ধতিটি আসলে অনেক দীর্ঘ, আর এক্সওর বাস্তবায়ন করা আরও সহজ।


0

এপিএল, 31 বাইট

{({2⊥⊃~1 2=.{(64⍴2)⊤⍺×⍵}⍵}⍣⍵)1}

এটি প্রায় অবশ্যই ভয়াবহ কোড, তবে আমি একটি সম্পূর্ণ এপিএল নতুন। আমি আশা করি যে কোনও দক্ষতার সাথে যে কোনও ডি-ফাংশন থেকে মুক্তি পেতে এবং এটিকে যথেষ্ট সংক্ষিপ্ত করতে পারে expect যুক্তি কমবেশি আমার k4উত্তরের মতোই - গুন 1বা তার 2সাথে বিটগুলিতে রূপান্তর , এক্সওর সমান নয় ব্যবহার করে, একটি সংখ্যায় ফিরে রূপান্তর , পুরো জিনিসটি একটি ফাংশনে মোড়ানো এবং ব্যবহার করে নির্দিষ্ট সংখ্যার পুনরাবৃত্তির জন্য জিজ্ঞাসা করুন । অভ্যন্তরীণ পণ্য থেকে বেরিয়ে আসা ফলাফলটি কেন বদ্ধ রয়েছে তা আমার কোনও ধারণা নেই তবে এটি পরিষ্কার করে দেয়।


আপনি পরিবর্তন করে একটি বাইট সংরক্ষণ করতে সক্ষম হওয়া উচিত ~1 2=.করতে1 2≠.
Zachary

এবং, এটি কোন এপিএল সিস্টেম চালু আছে? যদি এটি ডায়ালগটিতে থাকে তবে আপনার এটি তৈরি করতে সক্ষম হওয়া উচিত {({2⊥⊃1 2≠.((64⍴2)⊤×)⍵}⍣⍵)1}[২৮ বাইট]
জাকারিয়া

0

সিরিয়াসলি, 12 বাইট

2,╣`2@%`Mεj¿

হেক্স ডাম্প:

322cb960324025604dee6aa8

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

যেহেতু সিরিয়াসলি একটি বিটওয়াইজ জোর করার কোনও উপায় অন্তর্ভুক্ত করা হয়নি, তাই এই সমাধানটি চ্যালেঞ্জটিকে সম্পূর্ণ আক্ষরিক অর্থে গ্রহণ করে, সরাসরি ত্রিভুজের প্রদত্ত সারিটি গণনা করে। এই পদ্ধতিটি n = 1029 পর্যন্ত সঠিক উত্তর দেয় (যার পরে পাস্কালের ত্রিভুজের প্রদত্ত সারিটি গণনা করার জন্য পর্যাপ্ত মেমরি নেই)।

ব্যাখ্যা:

 ,                       get input
  ╣                 push the nth row of pascal's triangle
   `2@%`M           take each element of the row mod 2
         εj         join all the binary digits into a string
2          ¿        interpret it as a base 2 number

0

পাইট , 40 10 বাইট

Đ0⇹Řć2%ǰ2Ĩ

ব্যাখ্যা:

বাইনারি সিয়ারপিনস্কি ত্রিভুজ পাস্কালের ত্রিভুজ মোড 2 এর সমতুল্য পর্যবেক্ষণ করে,

                      Implicit input
Đ                     Duplicate input
 0⇹Ř                  Push [0,1,2,...,input]
    ć2%               Calculate the input-th row of Pascal's Triangle mod 2
       ǰ              Join elements of the array into a string
        2Ĩ            Interpret as a binary number
                      Implicit print

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


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