Mã từ trong chuỗi số nguyên


15

Giới thiệu

Pareidolia : Từ Hy Lạp cổ đại; ρρρ (( para , para , đồng thời, cùng với) εἴδωλον ( Eidolon , “hình ảnh”). Xu hướng diễn giải một kích thích mơ hồ như một thứ mà người quan sát biết đến, chẳng hạn như giải thích các dấu hiệu trên Sao Hỏa như kênh đào, nhìn thấy hình dạng trên mây hoặc nghe các thông điệp ẩn trong âm nhạc. Nguồn: Wiktionary .

Ví dụ:

nhập mô tả hình ảnh ở đây

Paralogia : Từ Hy Lạp cổ đại; παρα ( para , “đồng thời, bên cạnh”) + λόγος ( logos “lời nói, văn tế, văn bản, ...”). Xu hướng nhận thức các từ theo trình tự tùy ý của các ký tự, chẳng hạn như trong các chương trình golf mã. Nguồn: yeah, tôi đã tạo ra nó (thực ra từ này có nghĩa là một cái gì đó khác , như được chỉ ra bởi @Martin).

Ví dụ:

    df4$/H)hEy_^p2\
    jtK2$)look|x1$

Thử thách

Viết chương trình lấy số nguyên dương làm đầu vào, tạo số nguyên làm đầu ra và bao gồm một từ tiếng Anh như một phần của mã. Mối quan hệ đầu vào-đầu ra phải tương ứng với một chuỗi số nguyên có thể được tìm thấy trong OEIS .

Quy tắc

  • Chỉ những từ trong danh sách này được cho phép. Điều này được thừa nhận tùy ý, nhưng điều cần thiết là tất cả chúng ta đều đồng ý về những từ được chấp nhận; và trong đó liên quan đến danh sách này có lẽ là tốt như bất kỳ khác.
  • Các từ cần phải được hình thành bằng cách ghép ít nhất hai tên hàm hoặc câu lệnh. Nếu ngôn ngữ của bạn chẳng hạn có chức năng gọi là ngôn ngữ correlationthì không thể sử dụng được. Sự kết hợp phải nghiêm ngặt: không có biểu tượng nào khác xuất hiện giữa các phần của từ. Ví dụ, bro~kensẽ không được tính là một từ.
  • Trường hợp là không quan trọng: cả hai validvaLiDđược chấp nhận.
  • Các từ trong chuỗi không được tính. Các chữ cái tạo nên từ cần phải là hàm hoặc câu trong ngôn ngữ lựa chọn, nghĩa là, một cái gì đó thực sự được thực thi . Ví dụ: mã sau đây sẽ không được phép : 'deoxyribonucleic'~1, trong đó '...'là một chuỗi, ~loại bỏ nội dung trước đó và 1chỉ in số 1.
  • Mỗi chữ cái của từ này là cần thiết . Điều này có nghĩa là việc xóa một chữ cái khỏi từ sẽ thay đổi mối quan hệ đầu vào-đầu ra. Điều đó bao gồm xuất ra một chuỗi khác nhau, hoặc xuất ra bất kỳ thứ gì khác, hoặc không tạo ra đầu ra, hoặc gây ra lỗi.
  • Bất kì số nguyên dương nào cũng phải được chấp nhận làm đầu vào và sẽ tạo ra đầu ra, ngoại trừ các hạn chế về kiểu dữ liệu hoặc bộ nhớ.
  • Các đầu ra tương ứng với đầu vào 1, 2, 3, ... phải tương ứng với một chuỗi xuất hiện trong OEIS . Không có đầu ra khác nên được sản xuất; chỉ một số nguyên, có thể có dấu trắng hoặc khoảng trắng hàng đầu.
  • Đầu vào và đầu ra có thể là đối số chức năng hoặc stdin / stdout.

Ghi bàn

Điểm số được tính bằng tổng chiều dài mã trừ hai lần độ dài của từ dài nhất, tính bằng ký tự. Hoặc tương đương, số lượng ký tự không dài nhất trừ đi độ dài của từ dài nhất.

Điểm số thấp nhất chiến thắng.

Ví dụ

Hãy xem xét một ngôn ngữ hậu tố tưởng tượng có các chức năng này c:: nhập số; At: tính vuông; $: thêm 1.

cAtsẽ là một chương trình hợp lệ (sản lượng tương ứng của nó với chuỗi 1, 4, 9, ..., đó là A000290 ), và nó sẽ có điểm -3.

cAt$cũng sẽ có giá trị (chuỗi 2, 5, 10, ..., đó là A002522 ), với điểm số -2.

c$At sẽ không hợp lệ, vì từ duy nhất ở đây là "Tại" và được tạo bởi một hàm hoặc câu lệnh duy nhất.


Tôi nghĩ rằng đây nên là một cuộc thi phổ biến.
MCM Abbey

5
@MCM Abbey Điều này sẽ không làm cho một cuộc thi phổ biến tốt. (Hầu hết các thử thách sẽ không.)
Alex A.

Điều này về cơ bản giới hạn trong các ngôn ngữ golf mặc dù.
ericw31415

Câu trả lời:


11

CJam, -20

COUNTErREVOLUTIONARIES],

Xuất phần tử thứ n trong chuỗi A010861 .

COUNTE                      e# push values of six preinitialized variables
      r                     e# read a token of input
       REVOLUTIONARIES      e# push values of 15 other preinitialized variables
                      ]     e# wrap whole stack in array
                       ,    e# get length

Việc xóa một ký tự khỏi từ sẽ dẫn đến một chuỗi hoàn toàn khác A010860 . Có một mối quan hệ khá thú vị giữa hai chuỗi: ở mọi chỉ số n, A010860(n)đều tương ứng với A010861(n)! Phải có một số lý do toán học sâu sắc đằng sau này.

Hãy thử nó ở đây .


1
Tôi đã phát hiện ra một mối quan hệ toán học tò mò khác: nếu bạn trừ chuỗi A010860 khỏi chuỗi A010861, kết quả luôn bằng 1 ở mọi chỉ số! Hấp dẫn ...
Doorknob

Điều này sẽ khó bị đánh bại :-)
Luis Mendo

Ồ, chữ hoa .. Ý tưởng tuyệt vời :)
Martin Ender

10

CJam, -5

limpet;

A010051 : in 0cho số tổng hợp và 1cho số nguyên tố.

Tôi đã mất mãi mãi để tìm thấy một cái gì đó ghi được một vài điểm và sẽ phá vỡ khi loại bỏ bất kỳ lá thư. Xóa bất cứ thứ gì ngoại trừ mném lỗi và xóa mchương trình thành chức năng nhận dạng.

li  e# Read input and convert to integer.
mp  e# Check for primality.
et  e# Get current datetime as a list.
;   e# Discard the datetime again.

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


Đẹp lựa chọn trình tự! :-)
Luis Mendo

8

05AB1E , -4 -11

Mã, in A010869 (không đổi 30):

ASYNcHRonouSlyI)g

Mã trước:

DoGS

Giải trình:

D     # Duplicate top of the stack
 o    # Pop a, push 2**a
  G   # For N in range(1, 2**a):
   S  # Push all chars seperate from the top of the stack

In trình tự A010879 .


Đó là chuỗi thú vị nhất cho đến nay!
Luis Mendo

2
Vượt qua -4 vẫn là thường xuyên -4; (
Sản xuất ETH

6

MATL , −6

INhale

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

Sản xuất chuỗi 1, 2, 3, ... ( A000027 )

Xóa bất kỳ chữ cái nào sẽ thay đổi đầu ra hoặc để chương trình mong đợi đầu vào thứ hai không tồn tại hoặc tạo ra lỗi.

Giải trình

Chương trình chỉ đơn giản là hít một con số và, sau một vài lần nghịch ngợm, thở ra không thay đổi.

I    % produces number 3
N    % number of elements in stack: produces number 1
h    % concatenates horizontally into array [3, 1]
a    % true if any element is nonzero. So it gives true (or equivalently 1)
l    % produces number 1
e    % triggers implicit input and reshapes into a 1x1 array. So it leaves input unchanged

5

Bình thường, 1

*QhSatan0000
   Satan

Giải trình?

       n00   - 0 != 0 (0) 
      a   0  - abs(^-0) (0, Required so it doesn't print out a random 0)
     t       - ^-1 (-1, required or will output 0 all the time)
    a      0 - abs(^-0) (1, Required so counts in right direction, would also print out a random 0)
   S         - 1-indexed range ([1], required so next command works properly)
  h          - Get the head (if `S` missed, will out 2)
*Q           - Multiply by Q

1, 2, 3, 4, 5 ...

Trình tự A000027

Thông điệp thăng hoa? Không bao giờ.

Hãy thử nó ở đây.


4

Japt, -6

NuLLIFIED)r^

Đầu ra A004453 : nimsum của N và 12 (N XOR 12).Kiểm tra nó trực tuyến!

Lưu ý: chuỗi OEIS được lập chỉ mục 0, do đó, đầu vào 0 sẽ dẫn đến mục đầu tiên.

Làm thế nào nó hoạt động

        // Implicit: N = array of inputs
Nu      // Push the following things to N:
LLIF    // 100, 100, 64, 15,
IED     // 64 again, 14, and 13.
)r^     // Reduce by XORing (using ^ between each pair)
        // The reduction goes as follows: U, U^100, U, U^64, U^79, U^15, U^1, U^12.

Đẹp! Bất kỳ lời giải thích, khi bạn có thể?
Luis Mendo

@LuisMendo Chắc chắn rồi, xong rồi. Nó cực kỳ đơn giản, nhưng tôi chưa tìm thấy thứ gì phức tạp hơn.
Sản phẩm ETH

@LuisMendo Cập nhật. Điều này thú vị hơn một chút.
Sản phẩm ETH

Thật! Nhưng rõ ràng loại bỏ Ysản xuất cùng một đầu ra? (trừ khi tôi làm sai điều gì đó)
Luis Mendo

@Luis Điều này có tốt hơn không?
Sản phẩm ETH

3

Headecks , điểm 4

exit

Điều này ánh xạ tới chương trình Brainfuck ,+-., đọc một ký tự và in nó, tính toán A000030 . Loại bỏ bất kỳ nhân vật rõ ràng sẽ phá vỡ nó.

Cũng có marshal( ,-<>+-.), rất hiệu quả ,-., nhưng điều đó không tương ứng với bất kỳ chuỗi OEIS nào.


2

mã máy x86, điểm -4

Mã thập phân của mã:

53 51 55 41 53 68 69 65 73 74 51 58 83 c4 14 c3

Hoặc, trong mã trang 437 :

SQUAShiestQXâ─¶├

Mã hội:

push ebx
push ecx
push ebp
inc ecx
push ebx
push 0x74736569
push ecx
pop eax
add esp, 0x14
ret

Một hàm thêm 1 vào đối số của nó .

Loại bỏ Abiến nó thành một chức năng nhận dạng. Việc xóa bất kỳ byte nào khác làm rối tung ngăn xếp, gây ra sự cố hoặc hành vi xấu của chức năng gọi.

Tôi khá chắc chắn rằng nó có thể cải thiện điểm số, nhưng nó có thể phụ thuộc vào việc giải thích các yêu cầu. Ví dụ, sử dụng từ SQUEAMIShnesscho một chương trình, sẽ tăng và sau đó giảm ebpđăng ký. Liệu loại bỏ bất kỳ trong số này gây ra một vụ tai nạn? Một chương trình thử nghiệm đơn giản nhất không sử dụng thanh ebpghi, vì vậy có lẽ nó không ... Để tránh nghi ngờ này, tôi đã sử dụng một từ ngắn hơn.



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.