Послідовність цілих чисел, експонентована діапазоном


16

Розглянемо трикутник , де N - го рядка (1 індексований) є масив з перших N позитивних цілих ступенів N . Ось кілька перших рядків:

N | Трикутник

1 | 1
2 | 2 4
3 | 3 9 27
4 | 4 16 64 256
5 | 5 25 125 625 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.
Гален Іванов

Чи можемо ми мати пробіли?
Стен Струм

@StanStrum Так.
Містер Xcoder

Відповіді:






4

APL (Dyalog) , 15 13 10 байт

3 байти збережено завдяки @ Adám

⊢⊃∘∊⍳*⍳¨∘⍳

Спробуйте в Інтернеті!

Як?

⍳¨∘⍳ - створити діапазон для кожного числа в діапазоні введення

⍳* - піднести кожне число в діапазоні введення до відповідних потужностей

- сплющити

⊢⊃ - виберіть n-й елемент


Якщо спробувати його в Інтернеті, код, здається, становить 17 байт, і не здається, що він приймає скалярний цілий аргумент або не дає єдиного цілого виводу
Грехем,

1
@Graham Online код присвоюється змінній f(таким чином, f←це ще 2 байти, що тут не враховується), і є тестовий джгут, який повертає результати 1до 10.
Erik the Outgolfer

Безумовно, ви повинні підрахувати всі байти, включаючи будь-які подібні завдання та ті, які потрібно взяти на вхід відповідно до специфікації питання та вивести відповідно до специфікації. Мій запит відповіді APL для введення екрана.
Грехем

@Graham, це dyalog APL dfns. Він не вимагає призначення призначення на будь-якому вході, розетка TIO - це просто для зручного перегляду
Uriel

Виходячи з цього, чи можу я припустити, що я можу призначити n у своєму робочому просторі перед запуском APL одного вкладиша і тим самим зберегти 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-індексацію

Збережено 2 байти ↑,/ → ∊, взяті з відповіді Грехема

Зауважте, що в тестовому посиланні код вимагає додаткової кількості f←, але це не враховується згідно з нашими правилами.


Дуже розумне використання с .
Adám

@ Adám Дякую :-)
H.PWiz

{⍵⌷∊*∘⍳⍨¨⍳⍵}⊢⌷∘∊((*∘⍳)⍨¨⍳)⊢⌷∘∊(⍳(*∘⍳)¨⍳)⊢⌷∘∊⍳*∘⍳¨⍳
Адам


- це мовчазна функція, що означає dfn. Між і необхідно , тому що називається monadically, тому індексувати зарахований . І ми змінюємося f⍨⍳в ⍳ f ⍳уникати виклику F ( *∘⍳¨) monadically (всякий раз , коли і ¨є суміжними, вони можуть поміняти положення).
Адам


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

Нічого собі, ти мусить бути справді втомився
Erik the Outgolfer

Я насправді дуже хворий!
Джонатан Аллан

10
Вибачте! Сподіваюся, незабаром вам стане краще!
Ерік Атголфер

Крім того, ось дещо 3 байти, які мені вдалося вирвати з цього банально.
Erik the Outgolfer


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.
Adám



0

Clojure 51 байт

0-індексовано, наприклад, вхід 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↔⇹+⁻⦋↔ŕ

Пояснення:

Коротко, він обчислює кожен ряд. Якщо запитуваний номер знаходиться в цьому рядку, поверніть його; в іншому випадку перейдіть до наступного ряду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.