সিকিন্ডাইনগোট ক্রম


27

শিরোনামটি 'সিকোয়েন্স ইনডেক্স ডিজিট নট' থেকে তৈরি।

চ্যালেঞ্জ:

একটি পূর্ণসংখ্যা দেওয়া nযা হ'ল >= 0, nনিম্নলিখিত অনুক্রমের 'তম সংখ্যাটিকে আউটপুট দিন ।
এখানে প্রথম 50 টি আইটেম রয়েছে যার উপরে এটির (0-সূচকযুক্ত) সূচক রয়েছে:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
1 0 3 2 5 4 7 6 9 8 22 20 30 24 23 26 25 28 27 32 11 33 10 14 13 16 15 18 17 31 12 29 19 21 50 40 41 42 44 45 35 36 37 51 38 39 52 53 55 56 34

এই ক্রমটি কীভাবে কাজ করবে?

সূচকের সংখ্যাটি nঅবশ্যই প্রথম হতে হবে যাতে কোনও অঙ্কের সাথে মিল nনেই এবং পূর্ববর্তী সূচকগুলির জন্য এখনও ঘটেনি। সুতরাং যখন আমরা এর থেকে স্বাভাবিক ক্রমটি দেখি 0-60:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

আমরা এর nমতো 'ম মানগুলি সংজ্ঞায়িত করি :

  • 0: প্রথম সংখ্যায় ( 0) একই অঙ্ক রয়েছে, সুতরাং আমরা পরবর্তী ( 1) সন্ধান করব, যাতে একই অঙ্ক থাকে না। সুতরাং n=0আউটপুট 1
  • 1: প্রথম সংখ্যাটিতে ( 0) একই অঙ্ক থাকে না, সুতরাং n=1আউটপুট হয় 0
  • 2: আমরা ইতিমধ্যে মুখোমুখি হয়েছি 0এবং 1পরবর্তী অঙ্কে ( 2) একই অঙ্ক রয়েছে, তাই আমরা পরবর্তী ( 3) সন্ধান করব, যাতে একই অঙ্ক থাকে না। সুতরাং n=2আউটপুট 3
  • ...
  • 10: আমরা ইতিমধ্যে সম্মুখীন হয়েছি 0-9, সুতরাং পরের লাইনে 1010-19ম্যাচিং অঙ্ক ধারণ 1, 20ম্যাচিং অঙ্ক রয়েছে 0, 21ম্যাচিং অঙ্ক রয়েছে 1আবার, 22বৈধ, তাই n=10আউটপুট 22
  • প্রভৃতি

চ্যালেঞ্জ বিধি:

  • আপনার ভাষা 1-ইন্ডেক্স (বা আপনাকে চয়ন করুন) তোমার দিকে ক্রম শুরু করার জন্য অনুমতি দেওয়া হয় তাহলে 3 2 5 4 7 ...(কুঁদন 1n=0এবং 0n=1)।
  • আপনার সর্বনিম্ন বৃহত্তম সূচকটি সমর্থন করা উচিত 25,000দ্রষ্টব্য: অনুক্রমটি সূচকে থামবে 1,023,456,788কারণ পরের লাইনে সূচকগুলিতে সমস্ত 10 টি সংখ্যা রয়েছে।
  • আপনি চাইলে সূচকগুলি সহ সম্পূর্ণ ক্রমের একটি অ্যারে / তালিকা আউটপুট / ফেরত দেওয়ারও অনুমতি nপাবেন।

সাধারাইওন রুল:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার পক্ষে যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং রিটার্ন-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজন হলে একটি ব্যাখ্যা যোগ করুন।

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

এই ক্রমটি সূচক এবং আউটপুট সম্পর্কিত আসলে জোড়া তৈরি করে। যদি সূচক nআউটপুট o, সূচক oআউটপুট nসুতরাং আপনি বাম বা ডান হয় ইনপুট করতে পারেন, এবং আউটপুট অন্য দিকে হবে:

0      <->  1       (this test case is optional)
2      <->  3
10     <->  22
12     <->  30
34     <->  50
89     <->  100
111    <->  200
112    <->  300
199    <->  322
2231   <->  4456
9605   <->  11118
19235  <->  46000
23451  <->  60668
25000  <->  13674

আপনি যদি অন্যদের চেষ্টা করতে চান তবে এখানে প্রথম 25,001 পরীক্ষার কেসের একটি পেস্টবিন রয়েছে।



3
সম্পর্কিত চ্যালেঞ্জের মতো, স্ক্র্যাটারপ্লট বেশ মজাদার । :)
মার্টিন ইন্ডার

@ মার্টিন ইন্ডার যখন আমি সম্পর্কিত চ্যালেঞ্জের ছড়িয়ে ছিটিয়ে থাকা দেখেছি তখন আমি বুঝতে পেরেছিলাম যে এটি একই রকম হবে। দেখা যাচ্ছে এটি প্রকৃতপক্ষে বরং একই রকম, তবে এখনও আলাদা। :)
কেভিন ক্রুইজসেন

কীভাবে এ জাতীয় গুরুত্বপূর্ণ অনুক্রমটি ওআইআইএস-এ নেই?
স্টিভি গ্রিফিন

@ স্টেভিগ্রিফিন ভাল প্রশ্ন। আসলে, আমি মনে করি এখনও পর্যন্ত আমার সমস্ত সিকোয়েন্স-চ্যালেঞ্জগুলি আমি পোস্ট করার সময় ওইআইএস-তে ছিল না (এখনও)। ;)
কেভিন ক্রুইজসেন

উত্তর:


3

পাইথ , 18 বাইট

u+Gf!|}TG@`H`T0hQY

এখানে চেষ্টা করুন! বা আরও পরীক্ষার কেস পরীক্ষা করুন!

নোট করুন যে এটি সূচক এন পর্যন্ত পুরো ক্রমটি প্রদান করে , তবে লিঙ্কটি একটি e(শেষ) প্রিপেন্ড করে কেবল শেষ সংখ্যাটি দেয় । আপনি যদি এই প্রোগ্রামটির দ্বারা ফিরে আসা কাঁচা মান দেখতে চান তবে কেবল এটি সরিয়ে দিন

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

u + Gf! | G TG @ `H`T0hQY - সম্পূর্ণ প্রোগ্রাম।

u ... এইচকিউওয়াই - বাম থেকে ডানদিকে এইচকিউ (ইনপুট বর্ধিত) হ্রাস করুন the
                       ফাংশন ... (জি, এইচ), প্রারম্ভিক মান ওয়াই সহ (খালি তালিকা)।
                       জি বর্তমান মান এবং এইচটি পুনরাবৃত্তি সূচক।
   f 0 - প্রথম পূর্ণসংখ্যা 0 থেকে শুরু হয় যা নিম্নলিখিতটি সন্তুষ্ট করে:
      G টিজি - জি-তে উপস্থিত হয় ...
     | @ `এইচটি - বা বর্তমান সূচি (এইচ) এর সাথে এর (স্ট্রিং) ছেদটি
                        খালি নয় এমন।
    ! - যৌক্তিক নয় (বুলিয়ান অবহেলা)।
 + জি - উপরে প্রাপ্ত মানটি বর্তমান মান (জি) এর সাথে যুক্ত করুন।
                      এটি পরবর্তী পুনরাবৃত্তির জন্য প্রদত্ত মান হয়ে যায়।
                    - সমস্ত অন্তর্বর্তী ফলাফল সুস্পষ্টভাবে মুদ্রণ করুন, বা মুদ্রণ করতে ই যোগ করুন 
                      শেষটা.

6

পাইথন 2 , 92 91 89 88 বাইট

a=()
i=0
exec"x=0\nwhile set(`x`)&set(`i`)or x in a:x+=1\na+=x,;i+=1;"*-~input()
print a

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

প্রথম n+1সংখ্যাগুলির একটি তালিকা মুদ্রণ করে


বিভিন্ন পদ্ধতির, যা অনেক দ্রুত:

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

n=input()
r=range(9*n)
i=0
exec"x=0\nwhile set(`r[x]`)&set(`i`):x+=1\nprint r.pop(x),;i+=1;"*-~n

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



3

হাস্কেল, 80 69 বাইট

f n=[x|x<-[0..],all(`notElem`show n)$show x,all(/=x)$f<$>[0..n-1]]!!0

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

বড় জন্য খুব ধীর n

f n=
    [x|x<-[0..]     ] !!0          -- pick the first of all 'x' from [0..]
                                   -- where
      all(`notElem`show n)$show x  -- no digit of 'n' appears in 'x', and
      all(/=x)                     -- 'x' is not seen before, i.e. not in the list
               f<$>[0..n-1]        -- 'f' mapped to [0..n-1]

সম্পাদনা করুন: @ লাইকনি 10 বাইট সংরক্ষণ করেছেন ধন্যবাদ!


অনুক্রমের সাথে সরাসরি সূচনার পরিবর্তে নবম পদটি গণনা করা সংক্ষিপ্ত: অনলাইনে চেষ্টা করে দেখুন!
লাইকনি

2

এপিএল (ডায়ালগ) , 39 বাইট

0∘{0=⍵:1⋄(~⍺∊0∇¨⍳⍵)∧⊃∧/≠/⍕¨⍺⍵:⍺⋄⍵∇⍨⍺+1}

ব্যবহার ⎕IO←0

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

কিভাবে?

Recursion।

0=⍵:1 - অনুমান কর.

~⍺∊0∇¨⍳⍵ - বাম আর্গ (সংগ্রহকারী) ইতিমধ্যে পূর্ববর্তী ফলাফলগুলিতে নেই

∧⊃∧/≠/⍕¨⍺⍵- এবং সঞ্চয়ের স্ট্রিং উপস্থাপনা এবং nপৃথক

:⍺ - তারপরে সংগ্রহকারীকে ফিরিয়ে দিন।

⍵∇⍨⍺+1 - অন্যথায়, ইনক্রিমেন্ট সংগ্রহকারী এবং পুনরাবৃত্তি।


বাহ .. আমি জানি ডিফল্ট নিয়মটি "কোনও পরিমাণের মেমরি এবং সময় দেওয়া হয়" তবে আপনার কোডটি n=10টিআইওতে ইতিমধ্যে শেষ হয়ে গেছে ..: এস এটি অবশ্যই খুব কার্য সম্পাদন-ভারী ক্রিয়াকলাপ হবে there এটিই কি পুনরাবৃত্তি যা এর কারণ, বা অন্য কিছু বাধা?
কেভিন ক্রুইজসেন

2
@ কেভিন ক্রুইসসেন দ্বিতীয় শর্তটি মূলত 0..n-1 এর পরিসরে ফাংশনটি প্রয়োগ করুন এবং প্রতিটি কলের জন্য একই প্রয়োগটি বিবেচনা করুন, এটি মোটামুটি একটি বিশাল হে (2 ^ n) এ আসবে। অবশ্যই এটি একটি যুক্তিসঙ্গত কোড সহ কম হতে পারে, কিন্তু যেখানে বোতলের অস্ত যে
ঊরীয়েল


2

জাভা (ওপেনজেডিকে 8) , 218 217 213 210 202 200 172 171 170 168 167 বাইট

আমি বিশ্বাস করতে পারি না যে আমি kএই সমস্ত সময় কেবল ফিরে আসিনি ...

i->{int j=-1,k=0,y=1;for(String r=" ",e=r;j++<i;r+=~-k+e,y=1)for(k=0;y>0;k++)for(int f:(k+(y=0)+"").getBytes())y+=(e+j).indexOf(f)<0&!r.contains(e+k+e)?0:1;return~-k;}

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


হুঁ, আমি যখন আমার জাভা প্রোগ্রামটি দিয়ে পেস্টবিন তৈরি করছিলাম তখন আমি এটির চেয়ে আলাদা approach এবং এটা মনে হয় আপনি গলফ পারেন for(char f:(""+k).toCharArray())করতে for(int f:(""+k).getBytes()), r.substring(-~r.trim().lastIndexOf(32));এবং r.substring(r.lastIndexOf(32)-1)
কেভিন ক্রুইজসেন

শেষের মতো জায়গা থাকায় শেষ ইন্ডেক্সের আগে অবশ্যই ছাঁটাই করতে হবে
রবার্তো গ্রাহাম

আহ, আমি সত্যিই একটি ভুল করেছি .. আমি জানতাম যে
স্ট্রিংয়ে

2

যান , 217 205 বাইট

package g;import("fmt";"strconv";"strings");var(
d=make(map[int]int)
a=strconv.Itoa)
func G(L int){k,i:=0,0;for;i<=L;i++{s:=a(i);k=0;for d[k]>0||strings.ContainsAny(a(k),s){k++;}
d[k]=1;}
fmt.Print(a(k));}

বিকল্প সংস্করণ (প্যাকেজের পরিবর্তে প্রোগ্রাম): অনলাইনে চেষ্টা করে দেখুন!

উন্নতি:

  • forজন্য একাধিক অ্যাসাইনমেন্ট ব্যবহার করে বাইরের পরে স্থান সরানোi,k
  • আমদানি "fmt";+ এর fmt.Printচেয়ে কম হয় os.Stdout.WriteString( package mainযখন ওএস.আরগসের দরকার ছিল তখন থেকে হোল্ডওভার )

ভাল, আপনার উত্তরটি প্রথম যা 25000পরীক্ষার ক্ষেত্রে চেষ্টা করার পরে 1 মিনিটের পরে শেষ হয় না । :) সুতরাং কেবল একটি বৈধ সমাধান নয়, পাশাপাশি তুলনামূলকভাবে ভাল পারফরম্যান্সও। আমার কাছ থেকে +1! (পিএস: আপনার টিআইও-লিংকে এটি আপনার পক্ষে যুক্তি রয়েছে, ইনপুটটি সরানো যেতে পারে বা ব্যবহৃত হয় না))
কেভিন ক্রুইজসেন

2

জাভাস্ক্রিপ্ট (ES6), 103 88 81

সম্পাদনা সহ সংশোধিত অনেক @Neil দ্বারা চালাক ধারনা

n=>eval("for(r=[j=i=0];i<=n;)j=r[j]||(i+'').match(`[${j}]`)?j+1:!(r[k=j]=++i);k")

শুরু

বেসিক ধারণা: 0 থেকে এন পর্যন্ত একটি লুপ এবং একটি অভ্যন্তরীণ লুপ চেকিং মান এখনও ব্যবহৃত হয় না

n=>{
  var r=[]
  for(i=0;i<=n;i++)
  {
    s=new Set(i+'')
    for(j=-1;s;)
    {
      if (!r[++j] && ![...j+''].some(d=>s.has(d)))
      {
        r[j]=1
        console.log(i,j)
        s=0
      }
    }
  }
  return j
}

বর্তমান সংস্করণ আরও পঠনযোগ্য

n=>{
  for(r = [j=i=0]; i <= n; )
    if (r[j] || (i+'').match(`[${j}]`))
      ++j
    else
      r [k=j] = ++i,
      j = 0;
  return k
}

পরীক্ষা

var f=
n=>eval("for(r=[j=i=0];i<=n;)j=r[j]||(i+'').match(`[${j}]`)?j+1:!(r[k=j]=++i);k")

update=_=>{
  var i=+I.value
  if (i < 1e4 || confirm("Really?")) {
    O.textContent=i + ' -> ...'
    setTimeout(_=>O.textContent=i + ' -> ' + f(i), 100)
  }
}  

update()
<input id=I value=100 type=number max=1023456788>
<button onclick='update()'>Go</button>
(slow when input > 1000)
<pre id=O></pre>


কাজের ~s.search(d)সাথে প্রতিস্থাপন করবে s.match(d)?
নিল

আমার মনে হয় আপনি পরিবর্তন করে অন্য বাইট সংরক্ষণ করতে পারবেন 0করার j++, অপসারণ ++থেকে jএটা আগে উপর এবং তারপর শুরু হয়েছিল jথেকে 0পরিবর্তে -1
নিল

আমি মনে করি আমি একটি n=>eval("for(r=[j=i='0'];i<=n;)r[j]|[...''+j].some(d=>i.match(d))?j++:(i=++i+'',r[k=j]=1,j=0);k")
নিল

@ নিল একটি লুপটি দুর্দান্ত হবে
edc65

@ নীল একক লুপটি দুর্দান্ত, ধন্যবাদ
এডসি 65

2

অক্টাভা , 114 বাইট

N=input("");o=[1];for i=1:N;j=0;while(any(o==j)||nnz(ismember(int2str(i),int2str(j))));j++;end;o=[o,j];end;[0:N;o]

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

চরিত্রের তুলনা গল্ফ করার জন্য কেভিন ক্রুইজসেন এবং ড্লোসকে ধন্যবাদ ।

Ungolfed

N=input("");o=[1];

for i=1:N;
    j=0;
    while(any(o==j)||nnz(ismember(int2str(i),int2str(j))));
        j++;
    end;
    o=[o,j];
end;
[0:N;o]

প্রাথমিক ব্যাখ্যা:

  • বাইরের লুপ এবং অভ্যন্তরীণ লুপ, একটি সূচকের জন্য iএবং অন্যটি মান যুক্ত করার জন্যj
  • প্রত্যেকের জন্য i, jনিম্নলিখিতগুলির কোনওটি পূরণ করা হলে বৃদ্ধি অবিরত করুন :

    1. যে কোনও jআগে ব্যবহৃত হয়েছে
    2. এই এক মজা পায়। প্রথমত, সংখ্যার একটি ভেক্টর (যেমন, প্রতিটি সাংখ্যিক মান বিভক্ত 10হয়ে [1 0]) ব্যবহার করে int2str। তারপরে, দুটি সংখ্যা ব্যবহার করে তুলনা করুন ismember(উদাহরণস্বরূপ, [1 0]এবং [2 1]ফিরে আসবে [1 0]) এবং তারপরে nnzকোনও কলাম মেলে কিনা তা দেখার জন্য।
  • যদি উপরের কোনওটির সাথে দেখা না হয় তবে আপনার পরবর্তী নম্বরটি রয়েছে! সংযোজন করতে o, আউটপুট ম্যাট্রিক্স

  • আউটপুট ম্যাট্রিক্স সহ মূল সূচকগুলি মুদ্রণ করুন

ভাল উত্তর, আমার কাছ থেকে +1। এবং মনে হয় @ ডিএলকস ঠিক আছে, এটি উভয় ছাড়াও কাজ করে -'0'। তবে যদি কিছু প্রান্তের ঘটনা ঘটে থাকে তবে আমরা উভয়ই ভেবে -48দেখিনি , একটি বিকল্প বিকল্প হবে। এছাড়াও, উভয় sprintf('%d',...)হতে পারে int2str(...)
কেভিন ক্রুইজসেন


1

পিপ , 30 বাইট

29 বাইট কোডের, -pপতাকা জন্য +1 ।

Fn,a+1{Y0WyNl|_NyMSn++ylPBy}l

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

পুরো তালিকা আউটপুট। সতর্কতা: অত্যন্ত অদক্ষ; 2231ইনপুট ক্ষেত্রে আমার ল্যাপটপে 35+ মিনিট চলমান হয়েছে এবং এখনও সমাপ্ত করেননি।

ব্যাখ্যা

                               a is cmdline arg, l is [] (implicit)
Fn,a+1{                    }   For each n in range(a+1):
       Y0                       Yank 0 into y
         W                      While...
          yNl|                  y is in l, or...
              _Ny               lambda function: arg is in y
                 MSn            mapped to digits of n and result list summed
                                (i.e., any digit of n is in y):
                    ++y          Increment y
                       lPBy     Once we have a y that meets the criteria, push it to
                                the back of l
                            l  Output l (formatted with -p flag)

1

ভিজ্যুয়াল বেসিক। নেট (.NET 4.5) , 260 259 বাইট

-1 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ

Function A(n)
Dim p=New System.Collections.Generic.List(Of Long),j="0",g=0
For i=0To n
j=0
While 1
If Not p.Contains(j)Then
g=1
For Each c In i.ToString
If j.Contains(c)Then g=0
Next
If g Then Exit While
End If
j+=1
End While
p.Add(j)
Next
A=p(n)
End Function

এরপরে লুপ হয়, এরপরে আগের পদগুলি উত্পন্ন করে পরে তুলনা করার জন্য। তারপরে ম্যাচগুলির সন্ধান করে স্ট্রিং হিসাবে সংখ্যাটি পুনরাবৃত্তি করে।

আপত্তিজনকভাবে ভিবি.এনইটি-র টাইপিং সিস্টেম। উদাহরণস্বরূপ, jএকটি স্ট্রিং, তবে একটি যুক্ত করা আমার জন্য পূর্ণসংখ্যায় রূপান্তর করে। পূর্ণসংখ্যাগুলি বুলিয়ান্সে রূপান্তরিত হয় যেখানে 0রয়েছে Falseএবং বাকিগুলি রয়েছে True

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


আমি ভিজ্যুয়াল বেসিকটিতে কখনই প্রোগ্রাম করি নি, তবে মনে হচ্ছে আপনি নীচের If Not p.Contains(j)Thenমতো করে স্থানটি সরাতে পারবেন If j.Contains(c)Then g=0। এছাড়াও, সরাসরি If Not p.Contains(j)Then \n g=1 \n For Each c In i.ToString \n If j.Contains(c)Then g=0 \n Next \n If g Then Exit While \n End Ifলুপটিতে সরানো gএবং ব্যবহার করে সংক্ষিপ্ত করা যেতে পারে Exit While: এটি দেখতে 241 বাইটIf Not p.Contains(j)Then \n For Each c In i.ToString \n If j.Contains(c)Then Exit While \n Next \n End If হয়ে যাবে ।
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন অবশ্যই এটি তৈরি করার জন্য জায়গাটি সরাতে পারবেন Contains(c)Then, আমি কেবল এটি মিস করেছি। আপনি যা ভাবছেন তা আমি পছন্দ করি তবে আমি gস্ট্রিংয়ে নম্বরটি রয়েছে কিনা তা দেখার জন্য সেন্ডিনেল হিসাবে ব্যবহার করছি । আপনার লিঙ্কটি ভুল উত্তর দেয়, তবে আমি কী দেখব আপনি কী ভাবছেন সেই সাথে কিছু অভ্যন্তরীণ যুক্তি পুনরায় কাজ করতে পারি কিনা।
ব্রায়ান জে

আহ উফ .. এটি সত্যই ব্যর্থ .. এখন এটি কেবল ইনপুট আউটপুট করছে। আমার খারাপ। সন্ধ্যা হলে এই মন্তব্য করা উচিত নয় এবং আমি কাজ থেকে ক্লান্ত। ;)
কেভিন ক্রুইজসেন

1

জেলি , 20 বাইট

পাইথ জেলিকে মারল । মিস্টার এক্সকোডার যান!

Df⁹LD¤ȯeṆ
0ç1#ɓ;
1Ç¡

জেলির তালিকা উপস্থাপনা * ব্যবহার করে STDIN থেকে ইনপুট নেওয়ার এবং তালিকা বিন্যাস বিকল্পে আউটপুট দেওয়ার একটি সম্পূর্ণ প্রোগ্রাম। স্ট্যান্ডার্ড 0 ভিত্তিক সূচক ব্যবহার করে।

* একক উপাদান তালিকার কোনও আশেপাশে থাকে না [], সুতরাং 0আউটপুট থাকে 1, যখন 1আউটপুট [1, 0]ইত্যাদি etc.

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

কিভাবে?

Df⁹LD¤ȯeṆ - Link 1, can append n to current? n, number; current, list
D         - convert n to decimal list
     ¤    - nilad followed by link(s) as a nilad:
  ⁹       -   chain's right argument, current
   L      -   length
    D     -   convert to a decimal list
 f        - filter discard from left if not in right
       e  - n exists in current?
      ȯ   - left logical OR right (empty lists are falsey)
        Ṇ - logical NOT

0ç1#ɓ; - Link 2, append next number: current, List
   #   - n find (count up finding first n matches):
  1    - ...finding: 1 match
0      - ...stating at: n=0
 ç     - ...doing: the last link as a dyad (left=n, right=current)
    ɓ  - new swapped-arg-dyadic chain (left = current, right = list of the found n)
     ; - concatenate

1Ç¡ - Main link: no arguments
1   - initialise the return value to 1
  ¡ - repeat input() times:
 Ç  -   last link (2) as a monad
    - implicit print
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.