Chuỗi các số nguyên lũy thừa phạm vi


16

Hãy xem xét một tam giác nơi N thứ hàng (1-lập chỉ mục) là mảng đầu tiên N cường quốc số nguyên dương của N . Dưới đây là một vài hàng đầu tiên:

N | Tam giác

1 | 1
2 | 2 4
3 | 3 9 27
4 | 4 16 64 256
5 | 5 25 125 625 3125
...

Bây giờ nếu chúng ta ghép các sức mạnh đó thành một chuỗi duy nhất, chúng ta sẽ nhận được OEIS A075363 :

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

Cho một số nguyên N , nhiệm vụ của bạn là trả về số hạng thứ N của chuỗi này. Bạn có thể chọn 0 hoặc 1 chỉ mục.

Các trường hợp thử nghiệm

1 chỉ mục:

N -> Đầu ra

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

Chỉ số 0:

N -> Đầu ra

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

Lưu ý rằng các sơ hở này bị cấm theo mặc định. Đây là , do đó bài nộp hợp lệ ngắn nhất trong mỗi ngôn ngữ sẽ thắng!


Tôi nghĩ rằng có một số lỗi trong các trường hợp thử nghiệm: trong 1 chỉ số 10 nên là 256; trong 0 chỉ số 9 nên là 256.
Galen Ivanov

Chúng ta có thể có không gian dấu?
Stan Strum

@StanStrum Có.
Ông Xcoder

Câu trả lời:



7

Husk , 7 byte

!ṁṠM^ḣN

Hãy thử trực tuyến!

1 chỉ mục

Giải trình:

      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 byte

3 byte được lưu nhờ vào @ Adám

⊢⊃∘∊⍳*⍳¨∘⍳

Hãy thử trực tuyến!

Làm sao?

⍳¨∘⍳ - tạo một phạm vi cho mỗi số trong phạm vi đầu vào

⍳* - nâng từng số trong phạm vi đầu vào lên các quyền hạn tương ứng

- làm phẳng

⊢⊃ - chọn phần tử thứ n


Khi thử trực tuyến, mã có vẻ là 17 byte và dường như không chấp nhận đối số nguyên vô hướng hoặc tạo ra một đầu ra số nguyên duy nhất
Graham

1
@Graham Online, mã được gán cho một biến f(do đó f←có thêm 2 byte, không được tính ở đây) và có một khai thác thử nghiệm trả về kết quả từ 1đến 10.
Erik the Outgolfer 19/11/17

Chắc chắn bạn phải đếm tất cả các byte bao gồm bất kỳ bài tập nào như vậy và những bài tập bắt buộc phải nhập vào theo thông số câu hỏi và để xuất theo thông số kỹ thuật. Câu trả lời APL của tôi nhắc nhở cho màn hình nhập.
Graham

@Graham đây là một dfns APL dyalog. Không yêu cầu chuyển nhượng được áp dụng cho bất kỳ đầu vào nào, ổ cắm TIO chỉ để xem thoải mái
Uriel

Trên cơ sở đó, tôi có thể giả sử tôi có thể gán n trong không gian làm việc của mình trước khi chạy APL one liner và do đó tiết kiệm được 7 byte, tôi không chắc các đối thủ cạnh tranh của chúng tôi sẽ chấp nhận điều đó.
Graham

3

Thạch , 7 byte

*R$€Ẏ⁸ị

Hãy thử trực tuyến!

-1 cảm ơn ông Xcoder .

1 chỉ mục.


Mã tuyệt vời ngay tại đây.
Jonathan Allan

Loại bỏ cú pháp ưa thích với ", giải pháp của riêng tôi là 7 byte:*R$€F⁸ị
Ông Xcoder

@ Mr.Xcoder Cảm ơn, mặc dù tôi đã gỡ bỏ ", nhưng vẫn còn. Đó là những gì bạn nhận được khi phải nghiên cứu lịch sử: /
Erik the Outgolfer 19/11/17


3

MATL , 9 byte

:t!^RXzG)

Lập chỉ mục là 1 dựa trên. Hãy thử trực tuyến! Hoặc xác minh tất cả các trường hợp thử nghiệm .

Giải trình

Hãy xem xét đầu vào 5là một ví dụ.

:     % 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 byte

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

Hãy thử trực tuyến!

Sử dụng 1 chỉ mục

Đã lưu 2 byte với ↑,/ → ∊, lấy từ câu trả lời của Graham

Lưu ý rằng trong liên kết kiểm tra, mã yêu cầu thêm f←, nhưng điều này không được tính theo quy tắc của chúng tôi.


Sử dụng rất thông minh với .
Adám

@ Adám Cảm ơn :-)
H.PWiz

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

Tôi sẽ đăng nó ... nếu tôi có ý tưởng nào về cách nó hoạt động
H.PWiz

là một chức năng ngầm là một dfn. Các giữa là cần thiết vì được gọi là monadically, vì vậy nó là chỉ số gia nhập . Và chúng ta thay đổi f⍨⍳vào ⍳ f ⍳để tránh gọi f ( *∘⍳¨) monadically (bất cứ khi nào ¨đang cận kề, họ có thể trao đổi vị trí).
Adám


2

05AB1E , 9 byte

ƒNDLm`}I@

Hãy thử trực tuyến!

Giải trình

1 chỉ mục.

ƒ           # 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)

Giải pháp thay thế cho danh sách thay vì vòng lặp

ÝεDLm}˜sè

1

Perl 6 , 29 byte

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

Kiểm tra nó

Mở rộng:

{  # 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

Thạch ,  15  12 byte

Có lẽ không tối ưu.

-3 cảm ơn việc chơi golf của Erik the Outgolfer .

=RṁR€T€µT*FḢ

Hãy thử trực tuyến!


Wow, bạn phải thực sự mệt mỏi ngày hôm nay.
Erik the Outgolfer 19/11/17

Tôi thực sự bị bệnh!
Jonathan Allan

10
Lấy làm tiếc! Hy vọng bạn sớm khỏe lại!
Erik the Outgolfer 19/11/17

Ngoài ra, đây là một số 3 byte tôi đã quản lý để rút ra khỏi tầm thường này.
Erik the Outgolfer 19/11/17


0

APL + THẮNG, 23 byte

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

Giải trình:

[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

Phương ngữ APL nào hoạt động trên?
Erik the Outgolfer 19/11/17

Nó được viết bằng APL + THẮNG. Tôi sẽ làm rõ điều này trong bất kỳ câu trả lời nào trong tương lai
Graham

Tôi lấy từ câu trả lời của bạn để thay thế của tôi ↑,/. Tôi không biết chức năng đó. Cảm ơn
H.PWiz

@EriktheOutgolfer Tôi nghĩ rằng điều này sẽ hoạt động trên bất kỳ APL hiện đại nào.
Adám



0

Clojure 51 byte

0-index, ví dụ 9trả về đầu vào 256.0.

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


0

Pyt , 39 37 byte

1 chỉ mục

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

Giải trình:

Tóm lại, nó tính toán từng hàng. Nếu số được yêu cầu ở hàng đó, hãy trả lại; nếu không, đi đến hàng tiếp theo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.