Làm một nuggler


8

Tôi đã thực sự quan tâm với các chuỗi theo sau tài sản

a(n+1)=a(na(n))

Gần đây, đây là một câu hỏi khác về các chuỗi này. Đặc biệt, chúng tôi quan tâm đến các chuỗi từ số nguyên đến số tự nhiên.

Một chuỗi tuần hoàn với thuộc tính trên là n -Juggler khi và chỉ khi nó chứa chính xác n giá trị riêng biệt. Ví dụ, chuỗi sau đây là một juggler 2

... 2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,2,2,1 ...

vì nó chỉ chứa các con số 12.

Một ví dụ về ba người tung hứng sẽ là

... 3,5,3,5,1,5,3,5,3,5,1,5,3,5,3,5,1,5,3,5,3,5,1,5,3,5,3,5,1,5,3,5,3,5,1,5 ...

bởi vì nó juggles 1, 35.

Bài tập

Cho n> 1 làm đầu vào, đầu ra bất kỳ n -Juggler.

Bạn có thể xuất một chuỗi theo một số cách, bạn có thể

  • xuất ra một hàm chỉ mục nó.

  • lấy một đầu vào bổ sung của chỉ mục và xuất giá trị tại chỉ mục đó.

  • xuất ra một phần phụ liên tục của chuỗi đó, với thuộc tính đã cho sẽ xác định duy nhất chuỗi đó.

Đây là để câu trả lời được tính bằng byte với ít byte hơn.


1
Chúng tôi có được phép in trình tự vô thời hạn không?
Ông Xcoder

3
@ Mr.Xcoder Thông thường tôi sẽ nói có, nhưng vì các chuỗi này là vô hạn theo cả hai hướng, tôi phải do dự nói không. (Nếu bạn đưa ra một lập luận hấp dẫn, tôi có thể dễ dàng thay đổi suy nghĩ của mình về vấn đề này) Nếu bạn có thể tìm cách in theo cả hai hướng sẽ ổn.
Ad Hoc Garf Hunter

3
Có vẻ như các phần tiếp theo a(n+1) = a(n-a(n)), và không +
TFeld

4
Đúng vậy: lặp lại 2,2một lần → 2,2,2,2, lặp lại lần nữa → 2,2,2,2,2,2, v.v ... Hoàn toàn không có cách nào để có được một 1từ lặp lại 2,2. Trình tự bạn nhận được luôn là duy nhất.
aditsu nghỉ việc vì SE là EVIL

2
Có vẻ như tài sản không còn nữa.
Erik the Outgolfer

Câu trả lời:


4

Bình thường , 5 byte

t+*%E

Hãy thử 2 , 3 , 4 Jugglers.

Nhận hai số, NI , cách nhau bởi một dòng mới và theo thứ tự này. Tôi là chỉ số vào chuỗi.

Điều này sử dụng một công thức khá đơn giản: N - 1 + N * (I% N) . Hiệu lực của nó đã được xác nhận bởi OP .


3

CJam, 9

Còn cái này thì sao?

q~1$,=)*(

Dùng thử trực tuyến

Đầu vào là n inơi nđầu vào chính và ilà chỉ mục bạn muốn nhận giá trị.

Giải trình:

q~    read and evaluate the input (n and i)
1$    copy n
,=    basically this is a modulo (i%n) that avoids a negative result for negative i
)*    increment, then multiply by n
(     decrement




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.