범위 지수 정수의 순서


16

ㄱ 삼각형 고려 N 행째 (1 인덱싱)가 제 1의 배열 N 의 양의 정수 전력 N을 . 처음 몇 줄은 다음과 같습니다.

N | 삼각형

1 | 1
2 | 2 4
3 | 3 9 27
4 | 4 16 64 256
5 | 5 25125625 3125
...

이제 이러한 힘을 단일 시퀀스로 연결하면 OEIS A075363이됩니다 .

1, 2, 4, 3, 9, 27, 4, 16, 64, 256, 5, 25, 125, 625, 3125, 6, 36, 216, 1296, 7776, 46656 ...

정수 N이 주어지면 , 당신의 임무는 이 시퀀스 의 N 번째 항 을 반환하는 것 입니다. 0 또는 1 인덱싱을 선택할 수 있습니다.

테스트 사례

1- 색인 :

N-> 출력

1-> 1
2-> 2
3-> 4
5-> 9
10-> 256
12-> 25
15-> 3125

0 인덱스 :

N-> 출력

0-> 1
1-> 2
2-> 4
4-> 9
9-> 256
11-> 25
14-> 3125

참고 이러한 허점은 기본적으로 금지되어 있습니다. 이것은 이므로 각 언어에서 가장 짧은 유효한 제출이 승리합니다!


테스트 사례에는 약간의 오류가 있다고 생각합니다. 1- 인덱스 10의 경우 256이어야합니다. 0 인덱스 9에서 256은 256이어야합니다.
Galen Ivanov

후행 공백이 있습니까?
Stan Strum

@StanStrum 예.
Mr. Xcoder

답변:



7

껍질 , 7 바이트

!ṁṠM^ḣN

온라인으로 사용해보십시오!

1- 색인

설명:

      N   Get the list of all natural numbers
 ṁ        Map over each n in that list and then concatenate
  Ṡ  ḣ      Create the range [1,n] then ...
   M^       raise n to the power of each
!         Index into that sequence



4

APL (Dyalog) , 15 13 10 바이트

@ Adám 덕분에 3 바이트 절약

⊢⊃∘∊⍳*⍳¨∘⍳

온라인으로 사용해보십시오!

어떻게?

⍳¨∘⍳ -입력 범위에서 각 숫자의 범위를 만듭니다.

⍳* -입력 범위의 각 숫자를 해당 거듭 제곱으로 올립니다.

-평평하게하다

⊢⊃ -n 번째 요소를 선택


온라인으로 시도하면 코드가 17 바이트 인 것으로 보이며 스칼라 정수 인수를 허용하거나 단일 정수 출력을 생성하지 않는 것 같습니다
Graham

1
@Graham Online에서 코드는 변수에 할당 f되므로 ( f←여기서는 2 바이트가 더 포함됨 ) 결과를에서 1로 반환하는 테스트 하네스가 10있습니다.
Outgolfer Erik

반드시 이러한 할당 및 질문 사양에 따라 입력을 받고 사양에 따라 출력하는 데 필요한 할당을 포함하여 모든 바이트를 계산해야합니다. 내 APL 답변에 화면 입력을 요구합니다.
Graham

@ Graham은 dyalog APL dfn입니다. 어떤 입력에도 적용 할 필요가 없으며 TIO 콘센트는 편안한 시야를 제공합니다.
Uriel

이를 바탕으로 APL 하나의 라이너를 실행하기 전에 내 작업 공간 내에서 n을 할당하여 7 바이트를 절약 할 수 있다고 가정 할 수 있습니까? 동료 경쟁 업체가이를 수락할지 확신 할 수 없습니다.
Graham



3

MATL , 9 바이트

:t!^RXzG)

인덱싱은 1 기반입니다. 온라인으로 사용해보십시오! 또는 모든 테스트 사례를 확인하십시오 .

설명

5예를 들어 입력 을 고려하십시오 .

:     % Implcit input n. Push range [1 2 ... n]
      % STACK: [1 2 3 4 5]
t!^   % Matrix of all pair-wise powers
      % STACK: [1    2    3    4    5;
                1    4    9   16   25;
                1    8   27   64  125;
                1   16   81  256  625;
                1   32  243 1024 3125]
R     % Upper triangular matrix
      % STACK: [1    2    3    4    5;
                0    4    9   16   25;
                0    0   27   64  125;
                0    0    0  256  625;
                0    0    0    0 3125]
Xz    % Nonzeros. Reads values in column-major order
      % STACK: [1; 2; 4; 3; 9; ...; 625; 3125]
G)    % Get n-th entry (1-based). Implcit display
      % STACK: 9

3

APL (Dyalog) , 14 12 바이트

{⍵⌷∊*∘⍳⍨¨⍳⍵}

온라인으로 사용해보십시오!

1- 인덱싱 사용

Graham의 답변↑,/ → ∊ 에서 가져온 2 바이트를 절약했습니다.

테스트 링크에서 코드에는 추가가 필요 f←하지만 규칙에 따라 계산되지는 않습니다.


매우 영리한 사용 과 함께 .
Adám

@ Adám 감사합니다 :-)
H.PWiz

{⍵⌷∊*∘⍳⍨¨⍳⍵}⊢⌷∘∊((*∘⍳)⍨¨⍳)⊢⌷∘∊(⍳(*∘⍳)¨⍳)⊢⌷∘∊⍳*∘⍳¨⍳
Adám

나는 그것이 어떻게 작동하는지 전혀 모른다면 그것을 게시 할 것입니다
H.PWiz

dfn 에 대한 암묵적 기능 입니다. 사이에 있기 때문에 필요 가있다, 그래서 monadically라고 입대 인덱스 . 그리고,이 변경 f⍨⍳⍳ f ⍳피 호출에 F ( *∘⍳¨(마다 monadically)을 하고 ¨, 그들 위치를 바꿀 수있다 인접).
Adám


2

05AB1E , 9 바이트

ƒNDLm`}I@

온라인으로 사용해보십시오!

설명

1- 색인.

ƒ           # for N in range [0 ... input]
 N          # push N
  DL        # push range [1 ... N]
    m       # raise N to the power of each in [1 ... N]
     `      # flatten to stack
      }     # end loop
       I@   # get the element at index (input)

루프 대신 목록에 대한 대체 솔루션

ÝεDLm}˜sè

1

펄 6 , 29 바이트

{({|($++X**1..$++)}...*)[$_]}

그것을 테스트

넓히는:

{  # bare block lambda with implicit parameter 「$_」

  (  # generate the sequence

    {  # code block used to generate each value in the sequence

      |(         # slip the values into the outer sequence

        $++      # post-incremented anonymous state value
        X**      # cross using &infix:«**»
        1 .. $++ # from 1 to post-incremented anonymous state value

      )
    }

    ...          # keep generating values until

    *            # never stop

  )[ $_ ]        # index into the sequence (0-based)
}






0

APL + WIN, 23 바이트

(∊n↑¨⊂[2]n∘.*n←⍳n)[n←⎕]

설명:

[n←⎕] prompts for screen input and selects the nth element of the concatenated vector
see below

n←⍳n creates a vector of 1 to n

∘.* outer product with exponentiation as the operator

⊂[2] enclose each row of the resulting array as an element of a nested array

∊n↑¨ take 1 to n elements from the 1 to nth row of the matrix and concatenate into a vector

어떤 APL 방언이 작동합니까?
Outgolfer Erik

APL + WIN으로 작성되었습니다. 나는 미래의 답변에서 이것을 분명히 할 것입니다
Graham

나는 당신의 대답에서 내를 대신했습니다 ↑,/. 나는 그 기능을 몰랐다. 감사합니다
H.PWiz

@ EriktheOutgolfer 나는 이것이 현대의 모든 APL에서 작동 할 것이라고 생각합니다.
Adám



0

클로저 51 바이트

예를 들어 input 9은을 반환합니다 256.0.

#(nth(for[i(range)j(range i)](Math/pow i(inc j)))%)


0

Pyt , 39 37 바이트

1- 색인

←000`ŕŕ⁺ĐĐř^Đ04Ș↔+⇹Ł-Đ↔3Ș0>łŕ0↔⇹+⁻⦋↔ŕ

설명:

간단히 말해 각 행을 계산합니다. 요청 된 번호가 해당 행에 있으면 리턴하십시오. 그렇지 않으면 다음 행으로 이동하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.