Làm cho chương trình của bạn tuần tự! [đóng cửa]


8

Nhiệm vụ của bạn, nếu bạn chọn chấp nhận nó, thật đơn giản.

Mục tiêu

Bạn phải tạo một chương trình mà khi chạy, sẽ in một số thuật ngữ (bao nhiêu tùy ý) theo trình tự bạn chọn. Trình tự phải là một trình tự OEIS hợp lệ . Vấn đề khó khăn là khi bạn lấy các ký tự từ mã tạo thành chuỗi của mình, xâu chuỗi chúng lại với nhau và chạy chúng trong cùng một ngôn ngữ , bạn sẽ nhận được công thức cho chuỗi thứ n của chuỗi cho chuỗi của mình.

Thí dụ

Hãy nói rằng tôi đã thực hiện chương trình này:

abcdefghij

và chọn chuỗi các ô vuông: http://oeis.org/A000290

và tôi đã chọn nó để in 5 thuật ngữ đầu tiên của chuỗi, đầu ra phải là:

1, 4, 9, 16, 25

Lưu ý: đầu ra rất linh hoạt, bạn có thể chọn phân tách nào bạn muốn phân tách các điều khoản, nhưng dấu phân cách phải được chú ý để mỗi thuật ngữ của chuỗi có thể được phân biệt.

Bây giờ, ký tự ở chỉ số 1 là a. Ký tự ở chỉ số 4 là d. Ký tự ở chỉ số 9 là i. Vì vậy, chương trình mới của tôi sẽ là:

adi

và nó sẽ phải in công thức cho thuật ngữ thứ n cho chuỗi của tôi, đó là:

n^2

Đơn giản!

Những thứ khác

  • Bạn phải in tối thiểu 5 điều khoản.
  • Bạn có thể chọn 0- hoặc 1 chỉ mục.
  • Số lặp lại có nghĩa là các ký tự lặp đi lặp lại.
  • Nếu chuỗi của bạn không theo thứ tự (ví dụ: nó đi ngược), thì mã của bạn vẫn tuân theo nó (ví dụ mã của bạn được viết ngược).
  • Bạn phải sử dụng và chỉ sử dụng các số trong giới hạn câu trả lời của mình, ngay cả khi nó đã vượt quá giới hạn. Bạn không thể sử dụng các số trong cùng một chuỗi bạn không in.
  • Nếu trình tự của bạn không chính thức có công thức, bạn có thể sử dụng 3 chữ cái đầu tiên của tên được nêu trên trang web OEIS (ví dụ: chuỗi fibWikipedia sẽ in và trình tự lucas-lehmer sẽ in luc).

Hãy nhớ rằng, đây là , vì vậy câu trả lời ngắn nhất, tính bằng byte, sẽ thắng!


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Martin Ender

Tên biến phải là n?
Sản xuất ETH

Tôi đang tạm dừng việc này cho đến khi một vài chi tiết khác về thử thách được sắp xếp (xem phòng chat được liên kết ở trên).
Martin Ender

5
Để mọi người đã bỏ phiếu mở lại. Nếu một câu trả lời giả định rằng bạn nên lấy càng nhiều giá trị từ chuỗi càng tốt và một câu trả lời khác giả định rằng bạn chỉ lấy càng nhiều càng tốt trong chương trình, thì thách thức không rõ ràng và cần phải được cải thiện trước khi thêm nhiều câu trả lời . Ngoài ra, đây không phải là trường hợp cạnh duy nhất chưa được xử lý (làm thế nào để các chuỗi không tăng hoặc chuỗi có giá trị lặp lại được xử lý?).
Martin Ender

Tôi hoàn toàn thích thử thách này, nhưng nó nên là một cuộc thi để xem ai có thể sử dụng công thức phức tạp nhất.
Bạch tuộc ma thuật Urn

Câu trả lời:


3

05AB1E , 10 byte, A008585

Mã này xuất ra 11 phần tử đầu tiên của chuỗi 3n .

3TÝ' §n*»J

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

Giải trình

3            # push 3
             # STACK: 3
 TÝ          # push range [0 ... 10]
             # STACK: 3, [0,1,2,3,4,5,6,7,8,9,10]
   ' §       # push a space char converted to string
             # STACK: 3, [0,1,2,3,4,5,6,7,8,9,10], " "
      n      # square the string
             # STACK: 3, [0,1,2,3,4,5,6,7,8,9,10]
       *     # multiply the top 2 elements of the stack
             # STACK: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
        »    # join by newlines
         J   # join to string

Lấy mọi mục thứ n (0 chỉ mục) sẽ cho:

3'nJ

đầu ra 3n


5

Python 2, 35 byte

Tôi quyết định sử dụng chuỗi rõ ràng A000027 , về cơ bản có công thức n;) Nếu bạn chạy đoạn mã sau:

#print'n'
n=1
exec'print n;n+=1;'*8

Bạn nhận được đầu ra:

1
2
3
4
5
6
7
8

Và nếu bạn lấy 8 ký tự từ mã nguồn của tôi (được lập chỉ mục 0), bạn sẽ nhận được điều này:

print'n'

Mà chỉ đơn giản là in n.


Nếu bạn đang hy vọng có câu trả lời thú vị hơn, thì đây là giải pháp Python 2 n^2, tức là A000290 :

#p  r    i      n        t          '            n              ^                2                  '
n=1
exec'print n*n;n+=1;'*10

4

05AB1E, 7 6 byte, A000027

5L'n s

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

Giải trình:

5L      # Push [1, 2, 3, 4, 5]
  'n    # Push "n"
        # Do nothing
     s  # Swap (only in original program)
        # Implicit print

4L"n"scũng là một lựa chọn, hay tôi rời khỏi đây?
Bạch tuộc ma thuật Urn

Vâng, đúng vậy. Nhưng nó không cần phải như 5vậy4
Oliver Ni

"Và tôi đã chọn nó để in 5 điều khoản đầu tiên của chuỗi" - OP
Bạch tuộc ma thuật Urn

1
@carusocomputing Nhìn phía dưới
Oliver Ni

3

Octave, 64 byte A000290

Tôi đã đi cho n^2một:

@()(1:5 ).^2 % '        n          ^            2              '

Lấy các điều khoản 1, 4, 9, 16, 25, 36, 49 và 64 để nhận:

@()'n^2'

bản in nào:

n^2

2

05AB1E , 30 28 byte, A000290

Đây là chuỗi các ô vuông

"  n    ^      2        "5Ln

Xuất ra 5 số hạng đầu tiên của chuỗi với công thức n^2:

[1, 4, 9, 16, 25]

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

Đây là 1 chỉ mục. Vì vậy, lấy các ký tự từ mã tạo nên chuỗi, tôi nhận được

"n^2"

Đầu ra nào

n^2

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

Giải trình

"  n    ^      2        "              # push this string
                         5             # push 5
                          L            # push range [1, ..., 5]
                            n          # square it
                                       # implicit output

1

Kỳ quan , 16 byte A005843

 0";2"tk 5gen *2

Điều này đã từng là DASH, nhưng giờ đã được đổi tên thành Wonder.

Xuất ra 6 số chẵn đầu tiên. Lưu ý không gian hàng đầu. Giữ các chỉ số 0, 2, 4, 6 và 8:

 "2t 

Mà in 2t.

Giải trình

0";2"

Đây chỉ là một chuỗi và một số.

tk 5gen *2

Điều này tạo ra một danh sách vô hạn các số chẵn bắt đầu từ 0, sau đó lấy 5 mục đầu tiên từ danh sách đó.



1

Octave, 49 byte, A109234

@()  1      :      5     %'floor (n*sin h(1)) ';]

Chuỗi floor(n*sinh(1))là tất cả các số từ 1và trở lên, ngoại trừ 6, 13, 20, 26, 33, 40, 46, _3, _0, _6 ...Vì vậy, các ký tự được sử dụng để tạo 1 2 3 4 5phải được đặt ở các vị trí đó. Các vị trí còn lại được sử dụng cho chuỗi giải thích hàm.



0

Haystack , 21 10 9 byte

Haystack đã có rất nhiều tính năng mới được thêm vào trong vài ngày qua :) Tất nhiên, tôi sẽ sử dụng A000027 . Đây là chương trình inital:

<"n"o|OR4

Điều này sẽ in ra:

[1, 2, 3, 4, 5]

Và nếu bạn lấy các ký tự 1-5, 0 được lập chỉ mục, bạn sẽ nhận được:

"n"o|

Mà in n.


Nếu bạn muốn vui vẻ hơn, đây là giải pháp cho A000290 :

^"_(n\D2l^
3keU02/:[W
D5m"5s\ih_
Cr:OF]uAIe
hWd>g|AkuH
/6R>ud*O,\
)G:q$n|4y{
:|v\X:?dP/

Nếu bạn muốn chỉ nhìn thấy những ký tự cần thiết, bấm vào đây .

Điều này sẽ in 7 ô vuông đầu tiên và ký tự tương ứng của chúng trong chương trình trên, được lập chỉ mục 0, là:

"n^2"O|

Mà in n^2.

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.