Tìm chương trình in chuỗi số nguyên này (luồng của Cops)


39

Đây là chủ đề của cảnh sát. Chủ đề của bọn cướp đến đây .

Chủ đề cuối cùng đã được 4 tháng trước .

Nhiệm vụ của cảnh sát

  • Nhiệm vụ của cảnh sát là viết một chương trình / hàm lấy số nguyên dương (hoặc không âm) và xuất / trả về một số nguyên khác.
  • Cảnh sát phải nói rõ nếu chương trình không dung nạp về không.
  • Cảnh sát sẽ cung cấp ít nhất 2 đầu vào / đầu ra mẫu.
  • Ví dụ: nếu tôi đã quyết định viết chuỗi Fibonacci , tôi sẽ viết điều này trong câu trả lời của mình:
a (0) trả về 0
a (3) trả về 2
  • Số lượng ví dụ tùy theo quyết định của cảnh sát.
  • Tuy nhiên, trình tự phải thực sự tồn tại trong Từ điển bách khoa trực tuyến về Integer Sequences® , vì vậy không có trình tạo số giả ngẫu nhiên nào cho bạn.:(
  • Các cảnh sát có thể ẩn nhiều nhân vật như mong muốn.
  • Ví dụ: nếu chương trình của tôi là:

function a(n)
    if n>2 then
        return n
    else
        return a(n-1) + a(n-2)
    end
end

  • Sau đó, tôi sẽ ẩn những nhân vật này như tôi muốn:

function a(n)
    if ### then
        ########
    else
        ######################
    end
end

Nhiệm vụ của tên cướp

  • rõ ràng là để tìm mã nguồn gốc.
  • Tuy nhiên, bất kỳ mã nguồn được đề xuất nào tạo ra cùng một bộ đầu ra cũng được tính là hợp lệ, miễn là nó cũng được tìm thấy trong OEIS.

Lời khuyên cho cảnh sát

  • Chức năng tìm kiếm trong OEIS chỉ hoạt động cho các cụm từ liên tiếp, vì vậy nếu bạn muốn ẩn chuỗi của mình, thì chỉ cần để lại một lỗ ở bất cứ đâu.
  • Rõ ràng không có cách nào để che giấu trình tự. Đặt điều này trong tâm trí khi bạn chọn trình tự.

Điểm của bạn là số byte trong mã của bạn.

Người chiến thắng sẽ là người nộp bài với số điểm thấp nhất chưa bị bẻ khóa trong 7 ngày.

Chỉ những bài nộp được đăng vào tháng 4 năm 2016 mới đủ điều kiện để giành chiến thắng. Đệ trình được đăng muộn hơn này được chào đón, nhưng không thể giành chiến thắng.

Để nhận được chiến thắng, bạn cần tiết lộ mã đầy đủ và chuỗi OEIS (sau 7 ngày).

Bài đăng của bạn phải được định dạng như thế này (NN là số lượng ký tự):


Lua, 98 byte

Đầu ra:

a(0) returns 0
a(3) returns 2

Mã ( #đánh dấu các ký tự chưa được tiết lộ):

function a(n)
    if ### then
        ########
    else
        ######################
    end
end

Nếu mã bị bẻ khóa, hãy chèn [Cracked](link to cracker)vào tiêu đề. Nếu bài nộp an toàn, hãy chèn "An toàn" vào tiêu đề và tiết lộ toàn bộ mã trong câu trả lời của bạn. Chỉ những câu trả lời đã tiết lộ mã đầy đủ mới đủ điều kiện để giành chiến thắng.


2
Ngoài ra, tìm kiếm OEIS có thể có khoảng trống với _, fyi
Sp3000

9
Có thể đã quá muộn để thay đổi, nhưng việc cho phép các chuỗi là bội số của chuỗi OEIS và / hoặc chỉ bao gồm mọi thuật ngữ thứ n sẽ giúp thử thách này tốt hơn nhiều . hộp cát, gợi ý, gợi ý
Nathan Merrill

6
Tôi có thể, ví dụ, chọn chuỗi Fibonacci và chỉ cung cấp a(1000)không? (là một phần của chuỗi, nhưng quá lớn để có thể tìm kiếm trên OEIS)
Sp3000

2
Tôi muốn nói rằng các giá trị phải thực sự có thể tìm kiếm được trên OEIS, để có thể dễ dàng xác minh rằng các giá trị là chính xác cho chuỗi đã chọn.
Mego

3
"Không dung nạp về không" không có ý nghĩa. Điều đó nghĩa là gì?
frageum

Câu trả lời:


11

Vim, 36 tổ hợp phím - An toàn!

i****<esc>:let @q="^*i****$**@***"<cr><n>@qbD

(Lưu ý: <n>là nơi bạn nhập dữ liệu nhập của bạn)

Đây là mã không liên quan đến việc tạo số:

          :let @q="              "<cr><n>@qbD

Có nghĩa là tôi tiết lộ 5 trong số 19 nhân vật.

<n>là đầu vào. Dưới đây là một số kết quả đầu ra mẫu:

1@q:    1
2@q:    3
6@q:    18

Câu trả lời

Mã này in Số Lucas ( A000032 ), giống như Chuỗi Fibonnaci, ngoại trừ việc nó bắt đầu 2, 1thay vì 1, 1. Dưới đây là 15 số đầu tiên:

2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843

Đây là mã được tiết lộ:

i2 1 <esc>:let @q="^diwwyw$pb@-<c-v><c-a>"<cr><n>@qbD

Giải trình:

i2 1 <esc>                          "Insert the starting numbers
          :let @q="....."<cr>       "Define the macro 'Q'

Giải thích về vĩ mô:

^                      "Move to the first non-whitespace character on the line.
 diw                   "(d)elete (i)nner (w)ord. This is different then 'dw' because it doesn't grab the space. 
                      "It also throws people off since 'i' is usually used for inserting text.
    wyw$               "Move to the next number, yank it then move to the end of the line 
        pb             "(p)aste the yanked text and move (b)ack
          @-     <c-a> "@- is the register holding the word we deleted. Increment the current number that many times.
            <c-v>      "Since we're adding <c-a> this from the command line, we need to type it as a literal.

Bây giờ, chúng ta chỉ cần xóa số thứ hai, vì số thứ nhất là số lucas chúng ta muốn. Vì vậy chúng tôi làm

b   "move (b)ack
 D  "(D)elete to the end of the line.

Ngoài ra, nếu tôi không nhầm, đây là lần gửi an toàn đầu tiên! Điều đó thật tuyệt.


Tôi biết trình tự, tôi nghĩ. Tôi chỉ không biết làm thế nào để biến nó thành tổ hợp phím Vim.
Nic Hartley

Là đầu ra chỉ là số hoặc toàn bộ dòng?
ASCIIThenANSI

@ASCIIThenANSI Sau khi nhấn bDvào cuối, đầu ra chỉ là một số và một số khoảng trắng bổ sung.
DJMcMayhem

Tôi đã có trình tự đúng!
Nic Hartley

8

05AB1E , 5 byte, an toàn

Cuối cùng cho ngày hôm nay: p. Đầu ra:

a(0) = 9
a(5) = 4
a(10) = 89

Mã số:

___m_

Nhân vật bị xáo trộn được chỉ định với _. Hãy thử trực tuyến! -link. Sử dụng mã hóa CP-1252 .


Giải pháp:

žhžm‡

Giải trình:

žh       # Short for [0-9].
  žm     # Short for [9-0].
    ‡    # Translate.

Hãy thử trực tuyến! hoặc Thử cho tất cả các trường hợp thử nghiệm! .


Tôi biết trình tự, không phải là làm thế nào để tạo ra nó trong một vài byte ...
LegionMammal978

@ LegionMammal978 Vâng, tôi nghĩ rằng đó sẽ là phần khó nhất trong phần này.
Ad Nam

Tôi có thể lấy nó trong 5 byte với g°<¹- nhưng tôi không thể tìm ra cách nào để sử dụng mở kích thước này! D:
user81655

@ user81655 Vâng, đó là giải pháp thay thế :).
Ad Nam

6

Phần tử , 7 byte, bị nứt

Đầu ra:

a(3) = 111
a(7) = 1111111

Các #ký tự ẩn và tất cả chúng đều có thể in ASCII. Tôi nghĩ rằng điều này thực sự khó khăn một cách hợp lý (vì chỉ có 5 nhân vật bị mất).

###,##}

Để thuận tiện, đây là trang wiki Dùng thử trực tuyếnEsolang .


Chương trình ban đầu của tôi là:

_'[,$ ` }

Bí quyết là

]} giống nhau về mặt chức năng (cả hai đều dịch sang }Perl). Ngoài ra, tôi đã từng ,$tạo ra một 1lớp nhầm lẫn bổ sung, mặc dù có thể bỏ qua ,hoàn toàn bằng cách ,1thay thế.


(Tôi biết tôi không nên hỏi điều này, nhưng) bạn có chắc là nó đúng không? Đặc biệt, }thay vì ]?
Leaky Nun

@KennyLau Điều }này là chính xác và chương trình của tôi (theo như tôi biết) hoạt động trong mọi phiên bản của Element.
PhiNotPi


Tôi nghĩ rằng định dạng là sai trong mã gốc của bạn?
Rɪᴋᴇʀ

@EasterlyIrk Đó là. Nếu bạn biết cách sửa nó, hãy là khách của tôi.
PhiNotPi


5

JavaScript (ES7), 10 byte, Cracked

Đầu ra

f(0) -> 1
f(1) -> -1

t=>~t##**#

Kiểm tra nó trong Firefox hàng đêm. Mã này là một chức năng ẩn danh. Điều này có thể sẽ dễ dàng vì chỉ có ba ký tự ẩn, nhưng ít nhất nó ngắn! : P


Mã ban đầu của tôi là:

t=>~top**t

nhưng sau khi vũ phu buộc mã của riêng tôi cho một giải pháp, tôi sớm nhận ra

t=>~t.x**t(nơi xcó thể là bất kỳ ký tự tên biến)

cũng có thể được sử dụng. Điều này hoạt động vì

trong thông số toán tử lũy thừa ES7 ban đầu, toán tử có độ ưu tiên thấp hơn các toán tử đơn nguyên (không giống như toán học thông thường và hầu hết các ngôn ngữ khác). ~thực hiện bitwise NOT on t.x( undefined) hoặc top( Object), biến chúng thành số nguyên có chữ ký 32 bit (không thể phát sóng như thế này 0) trước khi thực hiện KHÔNG (vì vậy 0trở thành -1). Tôi đã tìm hiểu sâu hơn về vấn đề này và gần đây, thông số kỹ thuật đã thay đổi thành không cho phép các tài liệu tham khảo mơ hồ như thế này (không tốt cho việc chơi gôn trong tương lai D :), tuy nhiên hầu hết các động cơ ES7 chưa cập nhật lên phiên bản mới nhất của thông số kỹ thuật.


1
@insertusernamehere Dường như nghĩ rằng nó có chứa một biểu hiện bất hợp pháp. Nó hoạt động trong Firefox hàng đêm. Tôi đoán họ thực hiện các thông số ES7 khác nhau.
user81655

Tôi mới nhận được Firefox hàng đêm và tôi phải phàn nàn rằng nó không hoạt động ở đó. Cửa sổ 32 bit từ đây
Conor O'Brien

Giả sử **là tương đương với Math.pow, tôi đã thực hiện một số thử nghiệm của riêng mình, và thậm chí chạy một lực lượng vũ phu. Điều này là khá khó để crack!
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Firefox hàng đêm của tôi được cập nhật tính đến ngày hôm qua. Tôi đang sử dụng OS X nhưng tôi khá chắc chắn rằng nó cũng sẽ hoạt động trong Windows. Traceur với các tùy chọn ES7 thích hợp cũng cho phép phiên mã chính xác.
user81655

@ CᴏɴᴏʀO'Bʀɪᴇɴ Chỉ cần thử nó trong Windows 32 bit từ liên kết của bạn và nó cũng hoạt động. Tôi ngạc nhiên khi tìm kiếm vũ phu của bạn không thể phá vỡ nó. Tôi thực sự chỉ nhận ra có nhiều giải pháp cho việc này! D:
user81655

4

05AB1E, 4 byte ( Cracked )

Đầu ra mẫu:

a(5) = 51
a(8) = 257

Và cho mã:

###^

Tôi tiết lộ cái cuối cùng. Mặc dù vậy cũng đủ dễ, tôi đã khá khó khăn để tìm một chuỗi :(

Tất cả các ký tự ẩn có thể in được.



4

MATL , 5 byte, bị bẻ khóa

Các ký tự ẩn được chỉ định bởi %.

%5%*%

Đầu ra:

a(1) = 3
a(2) = 6
a(4) = 12

Đầu vào 0là hợp lệ.


Mã gốc:

35B*s

đó là,

35    % push number 35
B     % convert to binary: array [1 0 0 0 1 1]
*     % multiply element-wise by implicit input n: gives [n 0 0 0 n n]
s     % sum of array: gives 3*n

2
Hmmm, năm trong mã rất khó chịu!
Ad Nam

Về mặt kỹ thuật, điều này có thể bị ép buộc bởi một chương trình ... nhưng tôi sẽ không làm điều đó.
Leaky Nun


4

SWift, 55 byte, Cracked

func M(n:Int)->Int{
return(n*****) ?M(**n****):n***;
}

* đánh dấu một nhân vật ẩn

Đầu ra:

M(30) -> 91
M(60) -> 91
M(90) -> 91
M(120)-> 110
M(150)-> 140

Chức năng chấp nhận 0



4

Ruby, 46 byte, an toàn

Chỉnh sửa để thêm từ chối / xin lỗi: Trình tự này bắt đầu bằng f [0], trong khi mục OEIS bắt đầu bằng f [1]. Các giá trị là như nhau.

Mã Obfuscated ( #là bất kỳ ký tự nào):

->####or x##1###(#..##0#);x*=3;end;#.###ect:+}

Gọi như

->####or x##1###(#..##0#);x*=3;end;#.###ect:+}[3] (returns 39)

Đầu ra:

f[0] = 0
f[1] = 3
f[2] = 12
f[3] = 39
f[4] = 120
f[5] = 363
f[6] = 1092
f[7] = 3279
f[8] = 9840
f[9] = 29523

Giải pháp:

f=->*x{for x[-1]in(0..x[0]);x*=3;end;x.inject:+}

Trình tự:

http://oeis.org/A029858

Giải trình:

Thủ thuật nhỏ ở đây là chúng ta khai báo tham số là *xđúng hơn x. Điều này có nghĩa là nếu bạn vượt qua 2, xđược đặt thành [2]... lúc đầu. Thủ thuật chính khai thác kỳ lạ và tối nghĩa, cú pháp Ruby, nơi bạn có thể đặt iterator trong một vòng lặp for thành bất kỳ phía bên trái hợp lệ nào của biểu thức gán, thay vì một biến lặp như thế i. Vì vậy, vòng lặp này từ 0 đến (trong ví dụ này) 2, gán từng số cho x[-1], nghĩa là nó ghi đè lên giá trị cuối cùng của x. Sau đó, thân vòng lặp x*=3, tiếp tục biến đổi x bằng cách nối nó với chính nó 3 lần. Vì vậy, đầu tiên x trở thành [0], sau đó [0,0,0]. [0,0,1]Sau đó, vòng lặp tiếp theo sẽ trở thành [0,0,1,0,0,1,0,0,1]. Cuối cùng chúng tôi vượt qua trong 2 và nó trở thành [0,0,1,0,0,1,0,0,2], sau đó[0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 2]. Sau đó, chúng tôi tổng hợp kết quả bằng cách sử dụng injectphương thức, làm giảm mảng bằng cách áp dụng +(lần lượt trong phương thức) cho từng phần tử. Nếu chúng ta xem xét cách mỗi lần lặp thay đổi tổng, chúng ta sẽ thấy rằng chúng ta thêm 1 (bằng cách ghi đè phần tử cuối cùng với phần tử một cao hơn một cách hiệu quả), sau đó nhân với 3. Từ đó 3*(n+1) = 3*n + 3, điều này thực hiện mối quan hệ lặp lại của Alexandre Wajnberg cho chuỗi như được mô tả trên trang.


Tôi thực sự thích cảnh sát của bạn ở đây, điều này đặc biệt. Làm tốt.
Không phải Charles



3

PHP, 41 byte, bị bẻ khóa

Vâng, cuối cùng là một thử thách Cops và Robbers khác. Hy vọng tôi đã không làm cho nó dễ dàng.

Đầu ra

a(5)   = 0
a(15)  = 1
a(35)  = 0
a(36)  = 1
a(45)  = 1

Nguồn

____________________$argv[1]____________;
####################        ############

Ghi chú


Nứt

Tôi rõ ràng làm cho nó dễ dàng và cung cấp không đủ ví dụ. Trình tự tôi có trong tâm trí là A010054 :

a (n) = 1 nếu n là số tam giác khác 0.

Đây là mã nguồn ban đầu của tôi:

echo(int)($r=sqrt(8*$argv[1]+1))==$r?1:0;

Nó kiểm tra xem đầu vào là một số tam giác và đầu ra 1hoặc 0theo đó.



3

Jolf, 11 byte, Cracked , A011551

c*______x__

c*mf^+91x~P

Mã gốc:

c*^c"10"x~P

Ví dụ:

0 -> 1

12 -> 1618033988749


@Adnan Công việc tốt, mặc dù khác với tôi. Và bạn không thể tìm ra op đầu tiên. : P
Rɪᴋᴇʀ

Vâng, tôi không thể hiểu nó làm gì: p
Adnan

@Adnan nó là một chức năng int, sử dụng sai như một tầng.
Rɪᴋᴇʀ

3

MATL, 9 byte, Cracked

Mã số:

3#2###*##

Đầu ra:

a(1)  = 3
a(2)  = 6
a(4)  = 12
a(12) = 37

a(0) có giá trị


Nứt

Trình tự gốc: A059563

Mã gốc:

3L2^Ze*sk
3L          % Push [1 -1j] from the clipboard
  2^        % square
    Ze      % exp
      *     % times input
       s    % sum
        k   % floor


3

Java, 479 byte, đã bẻ khóa

Đầu ra:

a(10) = 81
a(20) = 35890

(Đầu vào được cung cấp thông qua các đối số dòng lệnh)

Mã ( #đánh dấu các ký tự ẩn):

import java.util.*;
public class A{

    public static int#########
    public boolean###########

    static A a = new A();

    public static void main(String[] args){
        int input = Integer.parseInt(args[0]);

        LinkedList<Integer> l = new LinkedList<>();
        l.add(1);
        l.add(0);
        l.add(0);

        for(int ix = 0; ################if(##>##{
            ###########d#
            #######+##p##########+##########(#######
        }

        System.out.println(#########################
            ###(A.#############(#5#####)));
    }
}

Chương trình bắt đầu ở chỉ số 0.

(Lưu ý rằng SE thay thế tất cả các \tthụt lề bằng 4 khoảng trắng, nâng tổng số byte lên 569. Nhấp vào đây để xem chương trình có \tthụt lề thay vì thụt lề không gian.)

Mã gốc:

import java.util.*;
public class A{
    public static interface B{
    public boolean C(int i);} 

    static A a = new A();

    public static void main(String[] args){
        int input = Integer.parseInt(args[0]);

        LinkedList<Integer> l = new LinkedList<>();
        l.add(1);
        l.add(0);
        l.add(0);

        for(int ix = 0; ix<input; ix++)cif(i->  {
            return l.add(
            l.pop()+l.peekFirst()+l.peekLast());});{    
        }

        System.out.println(l.get(1));}static boolean 
            cif(A.B b5){return (b5.C((0)));
    }
}

(Cùng mã, nhưng được định dạng bình thường):

import java.util.*;

public class A {
    public static interface B { //functional interface for lambda expression
        public boolean C(int i); //void would have given it away
    }

    static A a = new A(); //distraction

    public static void main(String[] args) {
        int input = Integer.parseInt(args[0]);//Input

        LinkedList<Integer> l = new LinkedList<>();
        l.add(1);//Set up list
        l.add(0);
        l.add(0);

        for (int ix = 0; ix < input; ix++)
            cif(i -> { //Fake if statement is really a lambda expression
                return l.add(l.pop() + l.peekFirst() + l.peekLast());
            });
        { //Distraction
        }

        System.out.println(l.get(1));//Output
    }

    static boolean cif(A.B b5) { //Used to pass in lambda expression.
                  //The A. and b5 were both distractions
        return (b5.C((0)));
    }
}

Hừm, làm thế nào để bạn đạt được số byte 488? Tôi đếm 545 từ iđến }? Và hãy xác định 0 dung sai.
Ma cà rồng

Không phải là ví dụ của bạn a(9)a(19)hay a(8)a(18), theo đó phiên bản của nó trên OEIS bạn mất?
Ma cà rồng

@ BjornKautler Tôi sẽ đăng một liên kết đến bộ đếm byte khi tôi về nhà. Bạn có ý nghĩa gì bởi dung sai 0? Giá trị đầu tiên là a (1) = 0
Daniel M.

Từ OP: "Nhiệm vụ của cảnh sát là viết chương trình / hàm lấy số nguyên dương (hoặc không âm) và xuất / trả về một số nguyên khác. Cảnh sát phải nêu rõ nếu chương trình không dung nạp về không." Vì vậy, tôi đoán bạn lấy đầu vào 1 là 0 và điều này cũng giải thích sự thay đổi vị trí, theo trình tự OEIS.
Ma cà rồng

@ BjornKautler OK, cảm ơn. Chương trình không gặp sự cố nếu 0 được nhập nhưng chuỗi bắt đầu ở chỉ số 1, vì vậy tôi đoán nó không dung nạp.
Daniel M.


3

C, 71 byte bị bẻ khóa

############
#####
main(){
 scanf("%d",##);
 ###6#;
 printf("%d",##);
}

Đầu ra:

a(1) = 0   a(2) = 0   a(5) = 1
a(6) = 1   a(7) = 1   a(9) = 2

Điều này hoạt động với gcc, và là một chương trình đầy đủ. Nó chấp nhận 0 là đầu vào.



Chà, tôi nên tiết lộ nhiều nhân vật hơn. Tôi đã đăng một cái khác, và tôi đã cố gắng tránh các cuộc gọi chức năng. codegolf.stackexchange.com/a/77583/52554
mIllIbyte

3

Pyth, 70 byte, Cracked

DhbI|qb"#"qb"#"R!1Iqb"#"#####+""s####2###;##lY+Q1Ih+""Z#####)=Z+Z1;@YQ

# là những nhân vật ẩn

Đã bị bẻ khóa, vì vậy đây là phiên bản không có ký tự ẩn:

DhbI|qb"4"qb"0"R!1Iqb"1"R!0Rh+""sm^sd2cb1;W<lY+Q1Ih+""Z=Y+YZ)=Z+Z1;@YQ

Đầu ra mẫu:

a(2) -> 10
a(4) -> 19

Thật may mắn khi tìm thấy điều này trên OEIS, cá nhân tôi đã thất bại trong việc tìm thấy nó từ những ví dụ đó (ngay cả khi trình tự cũng khá dễ nhận ra.)



3

Ruby, 38 byte, bị nứt

Mã Obfuscated ( #có thể là bất kỳ ký tự nào):

->#{(s=#########).sum==#3333&&eval(s)}

Đầu ra:

Nhân số đầu vào bằng 10 (A008592). Hoạt động với mọi số nguyên, bao gồm 0. ví dụ:

->#{(s=#########).sum==#3333&&eval(s)}[3]  => 30
->#{(s=#########).sum==#3333&&eval(s)}[10] => 100




3

Lua, 45 byte, bị nứt

Một gợi ý nhỏ:

a(0) will make the program crash :)

Đầu ra

a(1)=>0
a(2)=>1

Sử dụng #để ẩn mã :).

a=function(n)#####n###### and #or ########end

Tôi đã sử dụng OEIS A007814 , với mã sau:

a=function(n)return n%2>0 and 0or 1+a(n/2)end


@KennyLau Hoàn thành tốt, tôi đã thêm OEIS mà tôi đã nghĩ đến và mã dự định, tôi nên thêm ít nhất một đầu ra nữa để ngăn điều này xảy ra: p
Katenkyo

3

Pyke , 15 byte, AN TOÀN

Đầu ra

a(2) = 21
a(15) = 17

Mã tiết lộ:

#R#D######+##)#

Giải pháp:

OEIS A038822
wR}DSR_Q*L+#P)l
Tôi đã sử dụng một vài con cá trích đỏ ở đây bằng cách sử dụng wR}để tạo số 100 và tiết lộ ký tự Rthường được sử dụng để xoay ngăn xếp. Tôi cũng đã sử dụng #P)lthay vì đơn giản hơn mPsđể đếm số lượng các số nguyên tố trong chuỗi.


Trình tự trong câu hỏi bắt đầu từ n = 1 chứ không phải n = 0 bằng cách này
Blue

Tôi nghĩ đó là chuỗi đó, ngoại trừ nó bắt đầu ở n = 0 chứ không phải n = 1 như bạn đã nêu.
Emigna

3

C, 82 byte, an toàn

####=############
main(i){scanf("%d",##);
for(i=1;i++/4<#;)##=2;
printf("%d",##);}

Hoạt động với gcc, và nó là một chương trình đầy đủ, đọc đầu vào của nó từ stdin và in đầu ra của nó sang thiết bị xuất chuẩn. Ở đây trình tự là A004526, sàn (n / 2) .

a(0) = 0    a(1) = 0    a(2) = 1
a(3) = 1    a(4) = 2    a(5) = 2
a(6) = 3    a(7) = 3    a(8) = 4

Giải pháp:

a;*b=(char*)&a+1;
main(i){scanf("%d",&a);
for(i=1;i++/4<2;)a*=2;
printf("%d",*b);}

Điều này chỉ hoạt động trên các máy endian nhỏ và chỉ khi kích thước charlà 1 byte.
Và chỉ khi byte cao hơn byte thứ tự cao nhất acó giá trị 0. Tôi nghĩ điều này đúng với gcc vì theo mặc định, các biến toàn cục chưa được khởi tạo đi vào phân đoạn bss và các biến toàn cục khởi tạo đi vào phân đoạn dữ liệu (xem https: // stackoverflow.com/questions/8721475/if-a-global-variable-is-initialized-to-0-will-it-go-to-bss ).
Vì vậy, chỉ ađi vào bss (biến toàn cục duy nhất khác bđược khởi tạo và do đó đi vào phân đoạn dữ liệu). Nếu akhông ở cuối bss, thì byte cao hơn byte thứ tự cao nhất acũng nằm trong bss và do đó có giá trị 0.


Hãy thử thực hiện các cuộc gọi chức năng ngay bây giờ :)
mIllIbyte

1
Tôi không nghĩ rằng bạn phải xác định trình tự ...
FliiFe

@FliiFe - Đã sửa :)
mIllIbyte


2

Phần tử , 10 byte, bị nứt

Đầu ra:

a(3) = 6561
a(4) = 4294967296

Có lẽ chỉ có một vài cách để tính toán chuỗi này trong Element. Tôi đã tìm thấy một giải pháp 9 char, nhưng tôi nghĩ rằng giải pháp 10 char này thực sự khó khăn hơn. Các #nhân vật được ẩn.

#_####@^#`

Để thuận tiện, đây là trang wiki Dùng thử trực tuyếnEsolang .


Bản gốc là

2_3:~2@^^`

Hiển thị thêm một byte.
Leaky Nun

@KennyLau Tôi nghĩ đó là 1 trên 5? Đó là 10 byte và tôi đang hiển thị 3.
PhiNotPi

Đầu vào và đầu ra không được tính, vì vậy bạn có 8 byte và bạn đã hiển thị 1.
Leaky Nun

@KennyLau đã xong.
PhiNotPi



2

05AB1E , 5 byte, bị bẻ khóa

Tôi hy vọng rằng bài nộp này không dễ như những bài khác của tôi: p. Đầu ra:

a(0) = 0
a(1) = 1
a(2) = 6
a(3) = 24
a(4) = 80
a(5) = 240

Mã bị xáo trộn:

####O

Chứa một số ký tự không phải ASCII, sử dụng mã hóa CP-1252 .

Hãy thử trực tuyến! có thể có ích: p.



Tại sao tôi cảm thấy như tôi đã nhìn thấy nó trước đây?
Leaky Nun

@KennyLau \ _ (ツ) _ / ¯
Ad Nam

2

Jolf , 11 byte, Cracked .

Đầu ra:

a(10) = 4
a(20) = 6
a(30) = 8

Và mã ẩn một phần:

####xd###x#

Dấu:

Khi tôi xem qua các trình tự theo thứ tự, tôi đã không đi rất xa trước khi tìm thấy trình tự này.

Phiên bản bẻ khóa không hoàn toàn giống với mã gốc của tôi. Tôi hiện không ở máy tính của mình, vì vậy tôi không có chính xác, nhưng nó là một thứ như thế này:

l fzxd!m%xH

(Phần duy nhất tôi không chắc chắn là !m. Nó sẽ kiểm tra xem một biến có bằng không.)


Tôi đã tìm thấy trình tự ... Đáng tiếc tôi không biết rõ về Jolf hoặc javascript :(
Blue

@muddyfish, Tương tự ở đây ...
LegionMammal978

Chà, tôi đoán đã đến lúc chủ nhân làm điều đó ... tôi có thể không?
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Nếu mọi người khác bị bối rối - và có vẻ như họ - cảm thấy tự do.
Nic Hartley


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.