আরএটিএস ক্রম


30

আপনার টাস্কটি RATS অনুক্রমের নবম পদ উত্পন্ন করা, যেখানে এন ইনপুট। আরএটিএস সিকোয়েন্সটি বিপরীত অ্যাড টু সাজানোর ক্রম হিসাবেও পরিচিত। এই ক্রমটি এখানেও পাওয়া যাবে: http://oeis.org/A004000

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

0 > 1
1 > 2
2 > 4
3 > 8
4 > 16
5 > 77
6 > 145
7 > 668

উদাহরণস্বরূপ, 5 এর আউটপুট 77 হয় কারণ 16 + 61 = 77. এর পরে 77টি বাছাই করা হয়।

স্বল্পতম জমা জিতেছে। এটি আমার প্রথম চ্যালেঞ্জ তাই আমি আশা করি এটি কোনও সদৃশ বা কিছু নয়।


ইনপুটটি কি কোনও পূর্ণসংখ্যা হতে পারে বা এটি একটি স্ট্রিংও হতে পারে?
ডেনকার

@ ডেনারএফিকে আপনি একটি স্ট্রিং আকারে একটি সংখ্যা বোঝাতে চান?
justaprogrammer

@justaprogrammer হ্যাঁ, সুতরাং আমি পূর্ণসংখ্যার হিসাবে 123 এর পরিবর্তে "123" পেতে পারি। কিছু বাইট সংরক্ষণ করতে পারে।
ডেনকার

2
77 + 77 = 154 নয়? নাকি আমি কিছু মিস করেছি? সম্পাদনা: ওহ, হ্যাঁ, আমি বাছাই করতে ভুলে গেছি।
ডেনহাম কোট

6
@DenhamCoote আমি মনে করি আপনি বোঝানো "উহু ইঁদুর গুলি , আমি সাজাতে ভুলে গেছি!"
মার্টিন এন্ডার

উত্তর:


11

এমএটিএল , 11 12 বাইট

1i"tVPU+VSU

ইনপুট হ'ল স্ট্রিং (একক উদ্ধৃতি সহ) ইউনারিতে পূর্ণসংখ্যার প্রতিনিধিত্ব করে । স্ট্রিং ইনপুটটি চ্যালেঞ্জের দ্বারা অনুমোদিত এবং অ্যানারি একটি বৈধ ফর্ম্যাট

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

ব্যাখ্যা

1      % push number 1 to the stack
i      % input. Will be a string of "n" ones 
"      % for loop: repeat n times (consumes string)
  t    %   duplicate
  V    %   convert to string
  P    %   reverse
  U    %   convert to number
  +    %   add
  V    %   convert to string
  S    %   sort
  U    %   convert to number
       % loop is implicitly ended
       % stack content is implicitly displayed    

4
আমি জানি না কোনটি আমাকে আরও ভয় দেখায় / বিভ্রান্ত করে, এমএটিএল বা জেলি ... +1
ডাউনগোট

9

05 এ বি 1 ই , 6 বাইট

কোড:

$FDR+{

ব্যাখ্যা:

$       # Push 1 and input
 F      # For N in range(0, input)
  D     # Duplicate top of the stack
   R    # Reverse top of the stack
    +   # Add top two items
     {  # Sort top of the stack
        # Implicitly print top of the stack

এটি 0 বাইট প্রোগ্রামের সাথেও কাজ করে ।


@ আদনান তিন দিন আগে , আসলে। তবুও, ভাল খেলেছে ...
ডুরকনব

@ ডুরকনব ঠিক সময়ে হাহাহা
আদনান

19
আপনার উত্স কোডটি মুছে ফেলে আপনি 6 বাইট সংরক্ষণ করতে পারেন।
ডেনিস

2
এছাড়াও আপনি খাটো করতে পারেন 05AB1Eপ্রথম শূন্য দূর করুন, এবং তারপর বাদ দ্বারা 1, যেমন 1E==E। তারপরে আপনি ঠিক 5ABE-2 বাইট পাবেন।
flawr

1
@ ডেনিস দুর্দান্ত পর্যবেক্ষণ
আদনান

8

সিজেম, 15 বাইট

1ri{_sW%i+s$i}*

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

1     e# Push 1 as the start of the sequence.
ri    e# Read input and convert to integer N.
{     e# Run this block N times...
  _s  e#   Duplicate and convert to string.
  W%  e#   Reverse string.
  i+  e#   Convert back to integer and add to previous value.
  s$  e#   Convert to string and sort.
  i   e#   Convert back to integer for the next iteration.
}*

3
এই সমস্ত ভাষা এত সংক্ষিপ্ত হতে পারে
justaprogrammer

2
বিল্ট-ইন ফাংশন সহায়তার জন্য @justaprogrammer একক-চরিত্রের নাম। ;) সিজেম, পাইথ এবং ব্র্যাচল্যাগ সমস্ত গল্ফিং ভাষা, বিশেষত কোড গল্ফকে মাথায় রেখে তৈরি করা হয়েছে। ( এন.ইউইকিপিডিয়া.org / উইকি / কোড_গল্ফ# ডেডিকেটেড_গল্ফিং_এলংয়েজিগুলি দেখুন )) এরপরে এপিএল এবং জে এর মতো ভাষাও গল্ফিং ভাষা নয় তবে একইভাবে সংশ্লেষযুক্ত, কারণ ডিজাইনাররা ভেবেছিলেন এটি একটি ভাল ধারণা।
মার্টিন এেন্ডার

এর মতো চ্যালেঞ্জ জয়ের জন্য আপনি কোনটিকে সর্বাধিক সুপারিশ করেন?
justaprogrammer

3
@ समायोजित প্রোগ্রামার আমি এই চ্যালেঞ্জগুলি যে জিতেছে তার ভিত্তিতে আমি কোনওটিই বেছে নেব না (এটি সম্ভবত পাইথ বা জেলি হতে পারে)। "স্বাভাবিক" ভাষায় গল্ফ করা ঠিক ততটাই মজাদার হতে পারে (বিশেষত কারণ সেই ভাষার মধ্যে আরও প্রতিযোগিতা থাকতে পারে )। গল্ফিং ভাষার জন্য আপনি এটি ব্যবহার করা উপভোগ করা সম্ভবত এটি আরও গুরুত্বপূর্ণ। সিজেম বেশ মজাদার - এটি একটি স্ট্যাক-ভিত্তিক যা আপনাকে অন্য ভাষার তুলনায় আপনার মনকে আরও কিছুটা বাঁকিয়ে তোলে এবং একই সাথে এটি বেশ শক্তিশালী ভাষা, যা আমি গল্ফের বাইরে সরল নিক্ষেপ স্ক্রিপ্টগুলির জন্য ব্যবহার করতে শুরু করেছি, যা আমার উত্পাদনশীলতা একটি ভাল উত্সাহ।
মার্টিন এন্ডার

এই ভাষাগুলি খুব আকর্ষণীয় দেখায় এবং আমি নিজে নিজে একটি শেখার অপেক্ষা করতে পারি না। আমি জানি না জেলি কি? এটি কি একরকম জেলটিন বা কিছু?
justaprogrammer

8

পাইথ, 17 13 12 বাইট

uS`+vGv_GQ\1
u        Q\1    reduce range(input()) on base case of "1" (string)
   +vG          eval the string (to get a number), and add...
      v_G       the same number, reversed first and then eval'd
 S`             convert back to string and sort

অনলাইন দোভাষীর উপর এটি ব্যবহার করে দেখুন


4
এই যাদু কি? কিভাবে কাজ করে?
justaprogrammer

1
পছন্দ করুন :)
Doorknob

হু, কিন্তু কিভাবে। আপনি এই কোডটি কীভাবে পরীক্ষা করবেন?
justaprogrammer

1
@justaprogrammer আমি একটি অনলাইন দোভাষীকে একটি লিঙ্ক যুক্ত করেছি যাতে আপনি কোডটি চালাতে পারেন।
Doorknob

এটি দুর্দান্ত, এটি এত সংক্ষিপ্ত, তবুও এত সুন্দর
justaprogrammer

5

পাইথন 2, 72

f=lambda x,n=1:x and f(x-1,int(''.join(sorted(`n+int(`n`[::-1])`))))or n

রিকার্সিভ ফাংশন, পাইথন 2 সংক্ষিপ্তকরণের জন্য ব্যবহার করে __repr__, যা ফাংশনটি খুব বড় মানগুলিতে পৌঁছে গেলে এটি ভেঙে যায় (একটি Lসংখ্যার স্ট্রিংয়ের সাথে সংযুক্ত হবে), আমরা যেখানে থামতে পারি এমন কোনও জায়গা আছে কিনা তা অনুমানের থেকে আমি নিশ্চিত নই , তবে পরিবর্তিত না হলে str()কেবল 6 বাইট যুক্ত হয়, তবে তারপরে স্ট্রিং হিসাবে আউটপুট থেকে 75 বাইটে কিছুটা ছোট হয়ে যায়:

f=lambda x,n='1':x and f(x-1,''.join(sorted(str(int(n)+int(n[::-1])))))or n

এই সংস্করণে ট্রাইকোপলাক্সকে ধন্যবাদ 1 বাইট সংরক্ষিত


orদ্বিতীয় কোড ব্লকের আগে এটি কি উদ্বৃত্ত স্থান ?
ট্রাইকোপলাক্স

1
ক্রিচের জন্য @ ট্রিকোপলাক্স ধন্যবাদ :)
ফ্রাইআম দ্য এজম্যান

5

জাভাস্ক্রিপ্ট ES6, 70 বাইট

@ ব্যবহারকারী 81655 এর জন্য 1 বাইট সংরক্ষণ করা হয়েছে

f=n=>n?+[...+[...''+(b=f(n-1))].reverse().join``+b+''].sort().join``:1

দীর্ঘশ্বাস জাভাস্ক্রিপ্ট সত্যিই ভার্বোজ। একজন অনেক কোডের (> 50%) স্ট্রিং + + অ্যারে ফাংশন + এ ধরো যদি int- এ + + ঢালাই যোগদান হয়। আমি হ্রাস, বিভক্তকরণ এবং সমস্ত ধরণের স্টাফ চেষ্টা করেছি তবে এটি সবচেয়ে কম বলে মনে হচ্ছে।

এটি অনলাইনে ব্যবহার করে দেখুন (সমস্ত ব্রাউজার কাজ করে)


2
আমার মতো, তবে আরও ভাল (এবং আগে পোস্ট করা)। বাঃ!
edc65

স্ট্রিং ম্যানিপুলেশনটি জেএস এত দীর্ঘ, আপনারা আমার সমবেদনা জানিয়েছেন
মেয়রমন্তি

@ ব্যবহারকারী 81655 দুর্দান্ত, ধন্যবাদ! আমি কখনই
সেভাবে

f=n=>n?[...+[...b=f(n-1)].reverse().join``+b+''].sort().join``:'1'যদি স্ট্রিং ফেরার অনুমতি দেওয়া হয়
l4m2

4

ব্র্যাচল্যাগ , 19 বাইট

0,1 .|-1=:0&Rr+R=o.

ব্যাখ্যা

0,1 .               § If Input is 0, unify the Output with 1
     |              § Else
      -1=:0&R       § unify R with the output of this main predicate, with input = Input - 1
             r+R=o. § Reverse R, add it to itself and order it, then unify with the Output.

3

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

import Data.List
g i=i:g(sort$show$read i+read(reverse i))
(g"1"!!)

ব্যবহারের উদাহরণ: (g"1"!!) 7-> "668"

এটি সংজ্ঞাটির প্রত্যক্ষ বাস্তবায়ন: "1"বার বার বর্তমান উপাদানের বিপরীত-যোগ-সাজানোর ফলাফল যুক্ত করে starting প্রধান ফাংশন (g"1"!!)পছন্দ iতম উপাদান।


এটি 70 বাইটের অধীনে সর্বাধিক পঠনযোগ্য প্রোগ্রাম!
গৌরব আগরওয়াল

3

জুলিয়া, 77 বাইট

n->(x=1;for _=1:n x=(p=parse)(join(sort(["$(x+p(reverse("$x")))"...])))end;x)

এটি একটি ল্যাম্বডা ফাংশন যা একটি পূর্ণসংখ্যা গ্রহণ করে এবং পূর্ণসংখ্যা ফেরত দেয়। এটি কল করতে, এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করুন।

Ungolfed:

function f(n::Int)
    # Begin x at 1
    x = 1

    # Repeat this process n times
    for _ = 1:n
        # Add x to itself with reversed digits
        s = x + parse(reverse("$x"))

        # Refine x as this number with the digits sorted
        x = parse(join(sort(["$s"...])))
    end

    # Return x after the process (will be 1 if n was 0)
    return x
end

3

জেলি, 13 12 বাইট

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

DUḌ+ðDṢḌ Performs RATS
1Ç¡      Loops

D        Converts integer to decimal
 U       Reverses
  Ḍ      Converts back to integer
   +     Adds original and reversed
    ð    Starts new chain
     D   Converts back to decimal
      Ṣ  Sorts
       Ḍ Back to integer again

1        Uses 1 instead of input
 Ḍ       Uses line above
  ¡      For loop

সম্পাদনা: ডেনিসকে ধন্যবাদ 1 বাইট সংরক্ষিত


2

জাভা 1.8, 251 বাইট

interface R{static void main(String[]a){int i,r,n=1,c=0,t=Byte.valueOf(a[0]);while(++c<=t){i=n;for(r=0;i!=0;i/=10){r=r*10+i%10;}n+=r;a[0]=n+"";char[]f=a[0].toCharArray();java.util.Arrays.sort(f);n=Integer.valueOf(new String(f));}System.out.print(n);}}

সম্প্রসারিত

interface R{
static void main(String[]args){
    int input,reversed,nextValue=1,count=0,target=Byte.valueOf(args[0]);
    while(++count<=target){
        input=nextValue;
        for(reversed=0;input!=0;input/=10){reversed=reversed*10+input%10;}
        nextValue+=reversed;
        args[0]=nextValue+"";
        char[]sortMe=args[0].toCharArray();
        java.util.Arrays.sort(sortMe);
        nextValue=Integer.valueOf(new String(sortMe));
    }
    System.out.print(nextValue);
}
}

আপনি interfaceআর এর পরিবর্তে আর ব্যবহার করবেন classযা 4 বাইট সংক্ষিপ্ত?
শেরউড

1
@ উইলশেরউড কারণ আপনি এরপরেই এটি সংক্ষিপ্ত করে তুলনামূলকভাবে মূল () এর উপর জনসাধারণের পরিবর্তনকারীকে বাদ দিতে পারেন :)
ডেনহাম কোট


2

লুয়া, 179 156 বাইট

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

k=0z=table
for i=0,io.read()do
t={}(""..k+(""..k):reverse()):gsub("%d",function(d)t[#t+1]=d
end)z.sort(t)k=k<1 and 1or tonumber(z.concat(t,""))
end
print(k)

অবহেলিত এবং ব্যাখ্যা

k=0                                  
z=table                              -- z is a pointer on the table named table
                                     -- it allows me to use its functions
                                     -- while saving 4 bytes/use

for i=0,io.read()                    -- Iterate n times for the nth element
do
  t={}
  (""..a+(""..a):reverse())          -- we add k with its "reversed" value
                                     -- and convert the whole thing to a string
    :gsub(".",function(d)            -- for each character in it, use an anonymous fucntion
       t[#t+1]=d end)                -- which insert them in the array t
  z.sort(t)                          
  a=a<1 and 1 or                     -- if i==0, k=1
     tonumber(z.concat(t,""))        -- else we concat t in a string and convert it to number
end
print(k)

মনে হচ্ছে আপনি আর এখানে নেই ... তবে আপনি আমার জাভা উত্তরটি উল্লেখ করতে পারেন।
লিকি নুন

@ ল্যাকইনুন ভাল, আমি এবার অনেক বেশি অংশ নিচ্ছি না তবে এখনও সময়ে সময়ে চ্যালেঞ্জগুলি দেখছি, আমি আপনার উত্তরটি একবার দেখার চেষ্টা করব, তবে তা ছাড়া আমি এমন কিছু জিনিসও দেখতে পাচ্ছি যা খুব সহজেই গল্ফ হতে পারে ( a=a<1 and 1orএই ক্ষেত্রে).
কাটেনকিও

আমরা খুশি হব - আমি খুশি হব - আপনাকে ফিরে পেয়েছি।
ফাঁস নুন

2

ব্র্যাচল্যাগ 2, 11 বাইট, ভাষা পোস্টডেটস চ্যালেঞ্জ

;1{↔;?+o}ⁱ⁽

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

ব্যাখ্যা

;1{↔;?+o}ⁱ⁽
  {     }ⁱ  Repeatedly apply the following,
 1            starting at 1,
;         ⁽   a number of times equal to the input:
   ↔            reverse,
    ;?+         add the original input,
       o        then sort the resulting number

শূন্য অঙ্ক সহ এটি কী করে আমি তা সম্পর্কে পুরোপুরি স্পষ্ট নই, তবে প্রশ্নটি কোনও বিশেষ পরিচালনা পরিচালনা করে না এবং তারা সম্ভবত এই অনুক্রমের মধ্যে উপস্থিত হয় না।


1

ES6, 79 বাইট

n=>eval("r=1;while(n--)r=+[...+[...r+''].reverse().join``+r+''].sort().join``")

৮২ বাইট ছাড়াই eval:

n=>[...Array(n)].reduce(r=>+[...+[...r+''].reverse().join``+r+''].sort().join``,1)

এই সমস্ত রূপান্তরগুলি বেদনাদায়ক।

@ edc65 আমি আসলে থেকে সুইচিং দ্বারা 4 বাইট সংরক্ষিত mapকরার reduceএইবার ... কোন সন্দেহ তুমি আমাকে ভুল আবার যদিও প্রমাণ করব।


forসংক্ষিপ্ত:n=>eval("for(r=1;n--)r=+[...+[...r+''].reverse().join``+r+''].sort().join``")
ডাউনগোট

@ দো- n=0সিনট্যাক্স ত্রুটিগুলি স্থির করে নিলেও, এর জন্য কাজ করে না ।
নীল

1

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

পূর্ণসংখ্যা হিসাবে ইনপুট, ফলাফলটি স্ক্রিনে মুদ্রিত হয়।

def f(n):
 t=1
 for i in range(n):t=int("".join(sorted(str(int(str(t)[::-1])+t))))
 print t

এটি অনুমান করা কিছু পুনরাবৃত্তি যাদু দ্বারা অনেক কম হতে পারে, তবে আমি এখনও এটি আমার মাথাটি জড়িয়ে রাখতে পারি না। পরে একটি নতুন চেহারা হবে এবং আশা করি এটি এক উন্নত।


1

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

def f(n):
 v='1'
 for _ in v*n:v=''.join(sorted(str(int(v)+int(v[::-1]))))
 print v

1

পার্ল 6 , 40 বাইট

{(1,{[~] ($_+.flip).comb.sort}...*)[$_]} # 40

(আপনি যদি এটি চান যে কোনও আইএনটি ফেরত পাঠাতে পারেন +ডান আগে রাখুন [~])

ব্যবহার:

# give it a lexical name
my &RATS = {…}

say RATS 5; # 77

# This implementation also accepts a list of indexes

# the first 10 of the sequence
say RATS ^10; # (1 2 4 8 16 77 145 668 1345 6677)

1

গণিত 10.3, 66 61 বাইট

Nest[FromDigits@Sort@IntegerDigits[#+IntegerReverse@#]&,1,#]&

খুবই সাধারণ.



1

জাভা , 171 167 163 160 বাইট

int f(int n){int a=n>0?f(n-1):0,x=10,b[]=new int[x],c=a,d=0;for(;c>0;c/=x)d=d*x+c%x;for(a+=d;a>0;a/=x)b[a%x]++;for(;a<x;c=b[a++]-->0?c*x+--a:c);return n>0?c:1;}

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

দীর্ঘতম প্রবেশ নয়! \ ণ /


@Katenkyo দেখতে এই
লিকি নূনের

এটি ঠিক চ (1) ... f (20) তবে চ (21) এর ফলাফলটি ভুল বলে মনে হচ্ছে ...
রোজলুপ

যথার্থতা হ্রাস আমি মনে করি।
Leaky নুন


0

অ্যাক্সিয়োম, 146 বাইট

c(r:String):NNI==reduce(+,[(ord(r.i)-48)*10^(#r-i) for i in 1..#r]);f(n:INT):NNI==(n<1=>1;v:=f(n-1);v:=v+c(reverse(v::String));c(sort(v::String)))

পরীক্ষা এবং ফলাফল [RATS ক্রম]

(3) -> [[i, f(i)] for i in 0..20]
   (3)
   [[0,1], [1,2], [2,4], [3,8], [4,16], [5,77], [6,145], [7,668], [8,1345],
    [9,6677], [10,13444], [11,55778], [12,133345], [13,666677], [14,1333444],
    [15,5567777], [16,12333445], [17,66666677], [18,133333444], [19,556667777],
    [20,1233334444]]

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