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


20

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

Trong luồng cảnh sát, nhiệm vụ 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ố khác (không nhất thiết là số nguyên). Nhiệm vụ của bọn cướp là xắp xếp lại mã mà cảnh sát sử dụng để tạo đầu ra này.

Mã bị bẻ khóa không nhất thiết phải giống hệt nhau, miễn là nó có cùng độ dài và bất kỳ ký tự được tiết lộ nào đều ở đúng vị trí. Ngôn ngữ cũng phải giống nhau (số phiên bản có thể khác nhau). Đầu ra tất nhiên phải giống hệt nhau.

Không có op-op có thể được sử dụng trong giải pháp của kẻ cướp.

Người chiến thắng trong chuỗi cướp sẽ là người dùng đã bẻ khóa nhiều lần gửi nhất vào ngày 7 tháng 5 năm 2016. Nếu có một sự ràng buộc, người dùng đã bẻ khóa các bài nộp với mã kết hợp dài nhất sẽ giành chiến thắng.

Nội dung gửi phải được định dạng như thế này:

Ngôn ngữ, nn ký tự (bao gồm liên kết để trả lời), tên người dùng của Cop

Mã số:

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

Đầu ra

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

Tùy chọn giải thích và ý kiến.


Các quy tắc này ở đây khác với cảnh sát thred, trong đó có ghi: 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.
flawr

Điều gì xảy ra nếu các ví dụ khớp với nhiều chuỗi OEIS? Điều này vừa xảy ra với Adnan và tôi
FliiFe

@FliiFe Theo các quy tắc hiện hành, bất kỳ mã nào khớp với mã của cảnh sát và đưa ra một chuỗi OEIS có giá trị trùng với các ví dụ của cảnh sát là một vết nứt hợp lệ.
Mego

Điều này đã hoàn thành? Có một người chiến thắng?
Andrew Savinykh

Câu trả lời:



5

Lục giác , 7 byte, Adnan , A005843

?{2'*!@

hoặc là

 ? {
2 ' *
 ! @

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

Đơn giản chỉ cần tăng gấp đôi đầu vào (và giả sử đầu vào tích cực). Mã này (chỉ một lần) được thực hiện theo thứ tự đọc. Mã sử ​​dụng ba cạnh bộ nhớ A , B , C với con trỏ bộ nhớ bắt đầu như được hiển thị:

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

?    Read integer from STDIN into edge A.
{    Move memory pointer forwards to edge B.
2    Set edge B to 2.
'    Move memory pointers backwards to edge C.
*    Multiply edges A and B and store result in C.
!    Print result to STDOUT.
@    Terminate program.

Chính xác với những gì tôi đã có! :)
Nữ tu bị rò rỉ

@KennyLau Tôi nghĩ rằng giải pháp này là duy nhất để hoán đổi vai trò của BC.
Martin Ender

4

J, 7 byte, Cᴏɴᴏʀ O'Bʀɪᴇɴ

2+*:@p:

Đầu ra

   f =: 2+*:@p:
   f 0
6
   f 2
27

Hãy thử nó với J.js .

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

Chuỗi A061725 được định nghĩa là a (n): = p n ² + 2 , trong đó p n là số nguyên tố thứ (n + 1) .

2+*:@p:  Monadic verb. Argument: n

    @    Atop; combine the verbs to the right and to the left, applying one after
         the other.
     p:  Compute the (n+1)th prime number.
  *:     Square it.
2+       Add 2 to the result.

Công việc tốt! Bạn hiểu mã nhiều hơn tôi đã làm XD
Conor O'Brien


4

JavaScript, 10 byte , user81655 , A033999

Tôi nghĩ rằng tôi đã nhận nó. Vâng. Điều này thực sự khó khăn. Tôi thích bài nộp vì nó phụ thuộc rất nhiều vào các ưu tiên.


Đó là chuỗi A033999 :

a (n) = (-1) ^ n.

Nguồn

t=>~t.z**t

Giải trình

Nếu bạn tách mã này theo các ưu tiên của toán tử JavaScript, bạn sẽ nhận được:

  1. .(ưu tiên 18 ) được đánh giá đầu tiên và t.zsẽ trở lại undefined.
  2. ~(ưu tiên 15 ) cố gắng truyền undefined, kết quả 0và trả về -1sau bitwise không.
  3. **(ưu tiên 14 ) sẽ trở lại -1 ^ t, nơi tlẻ hoặc thậm chí , dẫn đến -1hoặc 1.

Bản giới thiệu

console.log(
    (t=>~t.z**t)(0),
    (t=>~t.z**t)(1),
);

Hãy thử trước khi mua


Tôi sẽ trao một phần thưởng 100 rep cho bài nộp Cop tuyệt vời này.


1
Bạn đã đúng, xin chúc mừng! :)
user81655

Tôi xem xét bản thân mình thành thạo javascript, nhưng tôi không biết làm thế nào điều này hoạt động.
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Tôi đã thêm một lời giải thích. Hy vọng nó giải thích nó đủ tốt.
insertusernamehere

Đó là lý do tại sao lực lượng vũ phu không tìm thấy nó. Tôi đã sử dụng một bộ chuyển mã với quyền ưu tiên sai> _ <
Conor O'Brien

3

Phần tử , 7 byte , PhiNotPi , A000042

_'[,1`}

Ghi chú: Tôi đã bị lừa bởi }vì quá lâu. Vì vậy, nó cũng phù hợp [.

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


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

_'[,1`}
_        main_stack.push(input());
 '       control_stack.push(main_stack.pop());
  [      Object temp = control_stack.pop();
         for(int i=0;i<temp;i++){
   ,         Object a = main_stack.pop(); //is actually zero
             main_stack.push(a.toChars()[0]);
             main_stack.push(a);
    1        main_stack.push(1);
     `       System.out.println(main_stack.pop());
      }  }

Tốt đẹp! Tôi đã thử điều này, nhưng tôi không thể tìm ra cách ,để ngăn chặn mọi thứ.
Vụ kiện của Quỹ Monica

Thủ thuật của tôi là làm ,$một sản phẩm 1, điều đó cho tôi một cái cớ để đưa ,toán tử thực sự khó hiểu vào chương trình của tôi.
PhiNotPi

Tôi đã bị mắc kẹt tại }tooooo từ lâu :(
Leaky Nun


3

MATL , 9 byte, cốc thủy tinh , A022844

Mã (có khoảng trắng ở cuối):

3x2xYP*k 

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

Tìm thấy ba trận đấu sau đây với một kịch bản tôi đã viết:

Found match: A022844
info: "name": "Floor(n*Pi).",

Found match: A073934
info: "name": "Sum of terms in n-th row of triangle in A073932.",

Found match: A120068
info: "name": "Numbers n such that n-th prime + 1 is squarefree.",

Tôi đã cố gắng thực hiện cái đầu tiên, về cơ bản được thực hiện với YP*k:

3x2x       # Push 3, delete it, push 2 and delete that too
    YP     # Push pi
      *    # Multiply by implicit input
       k   # Floor function

3

Jolf, 3 byte , Easterly Irk , A001477

axx

Bao gồm một con mèo đơn giản ( ax) theo sau là không có op. Không chắc chắn những gì cảnh sát đã đi cho ở đây.


Đó chắc chắn không phải là chức năng nhận dạng. Đó là cảnh báo đầu vào. Có các chức năng nhận dạng thực tế: P
Conor O'Brien

3

Java, 479 byte , Daniel M. , A000073

Mã số:

import java.util.*;
public class A{

    public static int i=0;
    public boolean b;

    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++)if(ix>2){
            l.add(0,l//d
            .get(1)+l.peekFirst()+     l.get(2));
        }

        System.out.println(input<2?0:l.pop()
              +(A.i        +(/*( 5*/ 0 )));
    }
}

Nếu bạn bỏ lỡ các ký tự không được tiết lộ, chúng được thay thế bằng khoảng trắng.


1
Rất khác với mã gốc, nhưng vẫn, chúc mừng!
Daniel M.

3

Ruby, 38 byte, lịch sử , A008592

->o{(s="+o++o"*5).sum==03333&&eval(s)}

Có thể khác với giải pháp dự định khi tôi tìm thấy điều này bằng tay.


Làm tốt lắm! Giải pháp dự định là tương tự : "+f+=f"*5.
lịch sử

3

05AB1E , 4 byte, Paul Picard , A001317

Mã số:

$Fx^

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

Giải trình:

$      # Pushes 1 and input
 F     # Pops x, creates a for-loop in range(0, x)
  x    # Pops x, pushes x and 2x
   ^   # Bitwise XOR on the last two elements
       # Implicit, ends the for-loop
       # Implicit, nothing has printed so the last element is printed automatically

Chuỗi về cơ bản là một tam giác Sierpinki nhị phân:

f(0)=      1                    =1
f(1)=     1 1                   =3
f(2)=    1 0 1                  =5
f(3)=   1 1 1 1                 =15
f(4)=  1 0 0 0 1                =17

Và chuyển sang công thức a (n) = a (n - 1) XOR (2 × a (n - 1))

May mắn thay, tôi nhớ cái này :)


1
Và nó cũng chính xác như vậy: D
Paul Picard



2

Reng v3.3 , 36 byte , Cᴏɴᴏʀ O'Bʀɪᴇɴ , A005449

iv:#+##->>)2%æ~¡#~
#>:3*1+*^##</div>

Đầu ra

a(1) = 2
a(3) = 15

Giải trình

Tôi hoàn toàn bỏ qua các lệnh được chỉ định trước, ngoại trừ )vì tôi không có đủ dung lượng.

Các lệnh thực sự hữu ích ở đây:

iv      >>)2%æ~
 >:3*1+*^

Kéo dài thành một đường thẳng:

i:3*1+*)2%æ~

Với lời giải thích:

i:3*1+*)2%æ~ stack
i            [1]      takes input
 :           [1,1]    duplicates
  3          [1,1,3]  pushes 3
   *         [1,3]    multiplies
    1        [1,3,1]  pushes 1
     +       [1,4]    adds
      *      [4]      multiplies
       )     [4]      shifts (does nothing)
        2    [4,2]    pushes 2
         %   [2]      divides
          æ  []       prints
           ~ []       halts

Công thức là a(n) = n(3n+1)/2.


+1 cho </div>, thẻ đóng HTML xuất hiện bằng cách nào đó trong mã Reng.
user48538

@ zyabin101 Sai chỗ?
Leaky Nun

Không. Tôi chỉ thích tìm bí mật ẩn trong mã. :-P
user48538

Chà, đây là mã của cảnh sát, nên ...
Leaky Nun

2

05AB1E, 3 byte , Adnan , A000292

LLO

Đầu ra

a(9) = 165
a(10) = 220

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

LLO Stack
L   [1,2,3,4,5,6,7,8,9]                         range
 L  [1,1,2,1,2,3,1,2,3,4,...,1,2,3,4,5,6,7,8,9] range of range
  O sum all of them

Tương đương toán học là sum(sum(n)), nơi sumsummation.


Làm tốt lắm, đó chính là giải pháp chính xác :)
Adnan

2

Jolf, 11 byte, QPaysTaxes , A000005

aσ0xxdxxxxx

Đủ đơn giản: alert σ0(số lượng ước của) x, sau đó đặt những thứ vô dụng vào cuối.

Hãy thử trực tuyến! Nút bộ kiểm tra hơi bị hỏng, nhưng vẫn hiển thị kết quả chính xác.

(Bạn có thể đánh gôn xuống còn hai byte! Chỉ cần σ0thực hiện tốt thôi.)


1
Ồ Le tích hợp trừ! +1
Adnan

1
Điều này không giống như những gì tôi đã có, nhưng nó chắc chắn hoạt động. Của tôi rất lâu bởi vì bạn không có bất kỳ đề cập nào về việc tìm kiếm ước tính trong các tài liệu.
Vụ kiện của Quỹ Monica

@QPaysTaxes Tôi đoán tôi cần cập nhật các tài liệu: P Nhưng nghiêm túc, chỉ cần Ctrl + F mã nguồn;)
Conor O'Brien

Tôi đặt mã gốc của tôi trong câu hỏi của tôi nếu bạn muốn xem nó. Nhìn lại, đáng lẽ tôi phải thể hiện các nhân vật khác nhau: P
Vụ kiện của Quỹ Monica

2

Python 2, 87 byte , Sp3000 , A083054

n=input()
_=int(3**.5*n)-3*int(n/3**.5)########################################
print _

Không khó lắm đâu. Chỉ cần tìm kiếm các chuỗi đáp ứng các ràng buộc cho đến khi tôi tìm thấy một chuỗi có thể được tạo trong không gian nhất định.



2

JavaScript (ES6), 119 byte, Cᴏɴᴏʀ O'Bʀɪᴇɴ , A178501

x=>(n="=>[[["|x|"##r(###f#n###;##")|n?Math.pow("#<1##].c####t.##pl##[####nc#"|10,"y([###(###(#]###)"|x-1|``):0|`#h####`

Tôi chắc rằng mã thực tế tạo ra một chuỗi phức tạp hơn thế này, nhưng chỉ với hai đầu ra, chuỗi OEIS này là đơn giản và khớp với chúng.

Không có tất cả các ký tự bị bỏ qua, thuật toán chỉ là x=>x?Math.pow(10,x-1):0.


2

05AB1E , 5 byte, Luis Mendo , A051696

Mã số:

Ðms!¿

Giải trình:

Ð      # Triplicate input.
 m     # Power function, which calculates input ** input.
  s    # Swap two top elements of the stack.
   !   # Calculate the factorial of input.
    ¿  # Compute the greatest common divisor of the top two elements.

Vì vậy, về cơ bản, tính toán gcd (n!, N n ) , đó là A051696 .

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









1

Pyth , 70 byte, FliiFe , A070650

Mã (với phiên bản bị xáo trộn bên dưới):

DhbI|qb"#"qb"#"R!1Iqb"#";=^Q6+""s ]%Q27  ;.qlY+Q1Ih+""Z##;.q)=Z+Z1;@YQ
DhbI|qb"#"qb"#"R!1Iqb"#"#####+""s####2###;##lY+Q1Ih+""Z#####)=Z+Z1;@YQ (obfuscated)

Điều này về cơ bản là:

=^Q6%Q27

Nó tính a (n) = n 6 % 27 , là A070650 . Giải trình:

=^Q6       # Assign Q to Q ** 6
    %Q27   # Compute Q % 27
           # Implicit output

Hãy thử nó ở đây


Rất tiếc, đó không phải là một. Tôi đã cập nhật câu trả lời của mình với một câu trả lời khác
FliiFe

Từ các quy tắc, điều này là hợp lệ. Chúc mừng !
FliiFe

Tôi đoán bây giờ tôi có thể cho bạn biết trình tự, Đó là A007770 (được lập chỉ mục 0)
FliiFe

@FliiFe Ồ, tôi sẽ không bao giờ đoán được điều đó: p
Adnan

Trên thực tế, nếu bạn biết trình tự, nó có thể dễ dàng phát hiện ra, nhưng nếu bạn không biết, nó sẽ trở nên rất khó khăn
FliiFe

1

Python, 108, CAD97 , A005132

def a(n):
 if n == 0: return 0
 f=a(n-1)-n
 return f if f>0 and not f in(a(i)for i in range(n))else a(n-1)+n

Mã bị xáo trộn:

def a(n):
 ###n####0######n#0
 f=a#######
 return f #f#####a###### f ####a(##f###i#i###a####n##else a#######

Đầu ra:

>>> a(0)
0
>>> a(4)
2
>>> a(16)
8
>>> a(20)
42

Chính xác những gì tôi đã có. Dự kiến ​​nó sẽ dễ dàng, trung thực.
CAD97
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.