Hằng số Champernowne là một số được xây dựng bằng cách ghép các n
số đầu tiên , có n
xu hướng vô cùng. Nó trông giống như thế này:
0.123456789101112131415161718192021222324252627282930...
Bây giờ, tôi sẽ mô tả cho bạn số Rien . Nó có thể được coi là tối thiểu hóa hằng số Champernowne như một số nguyên. Tôi sẽ đề cập đến số Rien với các n
chữ số đầu tiên là Ri ( n ). Đây là cách xây dựng nó:
- Các
n
số tự nhiên đầu tiên (dãy {1,2,3, ...}) được nối với nhau. - Kết quả này sau đó được sắp xếp, theo giá trị chữ số. Vì vậy,
1..12
sẽ trông như thế nào011111223456789
. - Vì số Rien không thể có các số 0 đứng đầu, chúng tôi di chuyển tất cả
0
các số sao cho chúng có ý nghĩa, trong khi giữ cho số lượng được giảm thiểu, dẫn đến, giả sử ,101111223456789
. Đây là Ri ( n ), trong trường hợp này, Ri (12).
Dưới đây là một số kết quả cho Ri ( n ):
n Ri ( n ) 1 1 2 12 3 123 7 1234567 9 123456789 10 10123456789 15 10111111223344556789 34 1000111111111111212222222222222333333333334444555666777888999999 42 1000011111111111111222222222222222333333333333333344444445555666677778888999999 45 1000011111111111111222222222222222333333333333333444444444444455555666677778888999999 55 10000011111111111111212222222222222223333333333333333333344444444444444445555555555555566666777778888899999999999 100 10000000000011111111111111111111222222222222222222222223333333333333333 999100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Mục tiêu Cho số 1 ≤ n
<10000 làm đầu vào (thông qua đối số, STDIN hoặc mã hóa cứng nếu ngôn ngữ của bạn không hỗ trợ đầu vào thông thường), đầu ra / trả về Ri ( n
).
Đây là một môn đánh gôn , vì vậy mã ngắn nhất tính bằng byte sẽ thắng. Bạn có thể sử dụng một ngôn ngữ được tạo ra sau cuộc thi này, miễn là nó không được tạo ra để trả lời thử thách này. (Tất nhiên, bạn có thể sử dụng nó, nếu nó cung cấp một giải pháp thú vị, nhưng đánh dấu câu trả lời của bạn là không cạnh tranh.)
Thực hiện tham khảo
Tôi đã thử nghiệm điều này trong IE, vì vậy thực sự không có vấn đề gì. Nếu có là một vấn đề, có một giải pháp dễ dàng: có được một trình duyệt lành mạnh.
function min(n) {
var seq = [];
for(var i = 1; i <= n; i++) seq.push(i);
seq = seq.join("").split("").map(Number);
var to;
if(seq.indexOf(1) >= 0) to = seq.splice(seq.indexOf(1), 1);
seq.sort(function(a, b) {
return a - b;
});
if(to) seq = to.concat(seq);
return seq.join("");
}
t.onchange = t.onkeyup = function() {
h.innerHTML = min(this.value)
}
* {
font-family: Consolas, monospace;
}
input {
border: 2px dotted #aaaaaa;
border-radius: 5px;
margin: 10px;
}
<input id="t" type="number">
<div id="h">
Bảng xếp hạng
Đoạn trích Stack ở cuối bài đăng này tạo ra danh mục từ các câu trả lời a) dưới dạng danh sách các giải pháp ngắn nhất cho mỗi ngôn ngữ và b) dưới dạng bảng xếp hạng tổng thể.
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
## Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Nếu ở đó bạn muốn bao gồm nhiều số trong tiêu đề của mình (ví dụ: vì điểm của bạn là tổng của hai tệp hoặc bạn muốn liệt kê riêng các hình phạt cờ phiên dịch), hãy đảm bảo rằng điểm thực tế là số cuối cùng trong tiêu đề:
## Perl, 43 + 2 (-p flag) = 45 bytes
Bạn cũng có thể đặt tên ngôn ngữ thành liên kết sau đó sẽ hiển thị trong đoạn trích:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
1
s phía trước 0
s, yeah?
0
là số rien .