範囲累乗整数のシーケンス


16

三角形検討N行目(1-インデックス付き)が最初の配列であるNの正の整数パワーNを。最初の数行は次のとおりです。

N | 三角形

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

これらのパワーを1つのシーケンスに連結すると、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でなければなりません。9は256でなければならない0インデックス
ガレノスイワノフ

末尾にスペースを入れることはできますか?
スタン・ストラム

@StanStrumはい。
ミスター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バイトが追加されます)、1to から結果を返すテストハーネスがあります10
エリックアウトゴルファー

そのような割り当てを含むすべてのバイトと、質問の仕様に従って入力を取り込み、仕様に従って出力するのに必要なバイトをカウントする必要があります。私のAPLの答えは、画面入力のプロンプトです。
グラハム

@GrahamこれはダイアログAPL dfnsです。入力に割り当てを適用する必要はありません。TIOアウトレットは快適に表示するためだけのものです
Uriel

それに基づいて、APL 1ライナーを実行する前にワークスペース内でnを割り当てて7バイトを節約できると仮定できますか?
グラハム

3

ゼリー、7バイト

*R$€Ẏ⁸ị

オンラインでお試しください!

-1 氏Xcoderに感謝します。

1インデックス付き。


素晴らしいコードがここにあります。
ジョナサンアラン

空想の構文を取り払う":、私自身のソリューションは7バイトである*R$€F⁸ị
氏Xcoder

@ Mr.Xcoderありがとう、"まだ削除していましたが、まだ。それはあなたが歴史を勉強しなければならないために得るものです:/
エリック・アウトゴルファー


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ありがとう:-)
H.PWiz

{⍵⌷∊*∘⍳⍨¨⍳⍵}⊢⌷∘∊((*∘⍳)⍨¨⍳)⊢⌷∘∊(⍳(*∘⍳)¨⍳)⊢⌷∘∊⍳*∘⍳¨⍳
アダム

私はそれを投稿します...それがどのように機能するかについて考えがあれば
-H.PWiz

暗黙の関数に対するものであり、dfnに対するものです。するので必要とされていることがあるので、monadicallyと呼ばれる入隊インデックスが。そして、f()を単項で呼び出すf⍨⍳こと⍳ f ⍳を避けるために変更し*∘⍳¨ます(隣接しているときはいつでも¨位置を入れ替えることができます)。
アダム


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

Perl 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

うわー、今日は本当に疲れているに違いない。
エリックアウトゴルファー

私は実際に本当に病気です!
ジョナサンアラン

10
ごめんなさい!元気になりますように!
エリックアウトゴルファー

また、ここから3バイトほど離れていますが、これを簡単に抜き取ることができました。
エリック・ザ・アウトゴルファー


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方言で動作しますか?
エリックアウトゴルファー

APL + WINで書かれています。私は、任意の将来の答えで、これは明確になります
グラハム

私はあなたの答えから私を置き換えました↑,/。私はその機能を知りませんでした。ありがとう
-H.PWiz

@EriktheOutgolferこれは現代のAPLで機能すると思います。
アダム



0

Clojure 51バイト

0-indexed、たとえばinput 9はを返します256.0

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


0

Pyt39 37バイト

1インデックス付き

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

説明:

簡単に言えば、各行を計算します。要求された番号がその行にある場合、それを返します。それ以外の場合は、次の行に進みます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.