Temukan program yang mencetak urutan bilangan bulat ini (Utang perampok)

20

Ini adalah utas perampok. Utas polisi ada di sini .

Di utas polisi, tugasnya adalah menulis program / fungsi yang mengambil bilangan bulat positif (atau non-negatif) dan menampilkan / mengembalikan nomor lain (tidak harus bilangan bulat). Tugas perampok adalah mengurai kode polisi yang digunakan untuk menghasilkan output ini.

Kode yang retak tidak harus identik, asalkan memiliki panjang yang sama dan setiap karakter yang terungkap berada di posisi yang benar. Bahasanya juga harus sama (nomor versi bisa berbeda). Outputnya tentu saja harus identik.

No-ops dapat digunakan dalam solusi perampok.

Pemenang utas perampok adalah pengguna yang telah memecahkan kiriman paling banyak pada 7 Mei 2016. Jika ada dasi, pengguna yang telah memecahkan kiriman dengan kode gabungan terpanjang akan menang.

Pengajuan harus diformat seperti ini:

Bahasa, nn karakter (termasuk tautan ke jawaban), nama pengguna Cop

Kode:

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

Keluaran

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

Penjelasan dan komentar opsional.

Biarawati Bocor
sumber
Aturan-aturan di sini berbeda dari polisi yang dicuri, di mana dikatakan: Namun, setiap kode sumber yang diusulkan yang menghasilkan serangkaian output yang sama juga dianggap valid, asalkan juga ditemukan di OEIS.
flawr
Apa yang terjadi jika contohnya cocok dengan beberapa seri OEIS? Ini Baru saja terjadi dengan Adnan dan saya
FliiFe
@ FliiFe Di bawah aturan saat ini, kode apa pun yang cocok dengan kode polisi dan menghasilkan urutan OEIS yang nilainya bertepatan dengan contoh-contoh polisi adalah celah yang valid.
Mego
Sudah selesai? Apakah ada pemenang?
Andrew Savinykh

Jawaban:

5

Hexagony , 7 byte, Adnan , A005843

?{2'*!@

atau

 ? {
2 ' *
 ! @

Cobalah online!

Cukup gandakan input (dan asumsikan input positif). Kode ini (sekali saja) dieksekusi dalam urutan membaca. Kode menggunakan tiga tepi memori A , B , C dengan penunjuk memori dimulai seperti yang ditunjukkan:

masukkan deskripsi gambar di sini

?    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.
Martin Ender
sumber
Persis sama dengan apa yang saya miliki! :)
Leaky Nun
@ KennyLau Saya pikir solusinya unik hingga bertukar peran Bdan C.
Martin Ender
4

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

Kode

2+*:@p:

Keluaran

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

Cobalah dengan J.js .

Bagaimana itu bekerja

Urutan A061725 didefinisikan sebagai (n): = p n ² + 2 , di mana p n adalah bilangan prima (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.
Dennis
sumber
Pekerjaan yang baik! Anda memahami kode lebih dari yang saya lakukan XD
Conor O'Brien
4

05AB1E , 5 byte , Adnan , A001788

Læ€OO

Cobalah online! Ini menggunakan definisi alternatif yang diberikan pada halaman. Penjelasan:

Læ€OO
L     range;      [1..n]
 æ    powerset;   [[], [1], ..., [1..n]]
  €O  mapped sum; [0, 1, ..., T(n)]
    O sum;        [a(n)]
LegionMammal978
sumber
4

JavaScript, 10 byte , user81655 , A033999

Saya rasa saya mengerti. Ya. Yang ini sangat sulit. Saya suka pengajuan karena sangat bergantung pada prioritas.


Ini urutan A033999 :

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

Sumber

t=>~t.z**t

Penjelasan

Jika Anda membagi kode ini sesuai dengan prioritas operator JavaScript yang Anda dapatkan:

  1. .(diutamakan 18 ) akan dievaluasi terlebih dahulu dan t.zakan kembali undefined.
  2. ~(diutamakan 15 ) mencoba untuk melemparkan undefined, menghasilkan 0, dan kembali-1 setelah bitwise tidak.
  3. **(diutamakan 14 ) akan kembali -1 ^ t, di mana tadalah aneh atau bahkan , yang mengakibatkan -1atau 1.

Demo

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

Coba sebelum membeli


Saya akan memberikan hadiah 100 rep atas pengiriman Cop keren ini.

masukkan nama pengguna di sini
sumber
1
Anda benar, selamat! :)
user81655
Saya menganggap diri saya berpengalaman dalam javascript, tetapi saya tidak tahu bagaimana ini bekerja.
Conor O'Brien
@ CᴏɴᴏʀO'Bʀɪᴇɴ Saya sudah menambahkan penjelasan. Semoga ini menjelaskan dengan cukup baik.
masukkan nama pengguna di sini
Itu sebabnya brute-force tidak menemukannya. Saya menggunakan transpiler dengan presedensi operasi yang salah> _ <
Conor O'Brien
3

Elemen , 7 byte , PhiNotPi , A000042

_'[,1`}

Catatan: Saya telah lama disesatkan oleh }soooooo. Jadi itu juga cocok[ .

Cobalah online!


Bagaimana itu bekerja:

_'[,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());
      }  }
Biarawati Bocor
sumber
Bagus! Saya sudah mencoba ini, tetapi saya tidak tahu bagaimana cara ,untuk menghentikannya.
Dana Gugatan Monica
Trik saya adalah ,$menghasilkan 1, yang memberi saya alasan untuk memasukkan ,operator yang benar-benar membingungkan dalam program saya.
PhiNotPi
Saya terjebak di }foroooo lama :(
Leaky Nun
3

MATL , 9 byte, gelas , A022844

Kode (dengan spasi putih di akhir):

3x2xYP*k 

Cobalah online!

Menemukan tiga kecocokan berikut dengan naskah yang saya tulis:

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.",

Saya mencoba melakukan yang pertama, yang pada dasarnya dilakukan dengan YP*k:

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

Jolf, 3 byte , Easterly Irk , A001477

axx

Terdiri dari kucing sederhana ( ax) diikuti oleh no-op. Tidak yakin apa tujuan polisi di sini.

LegionMammal978
sumber
Itu jelas bukan fungsi identitas. Waspadai input. Ada fungsi identitas aktual: P
Conor O'Brien
3

Java, 479 byte , Daniel M. , A000073

Kode:

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 )));
    }
}

Jika Anda melewatkan karakter yang tidak terungkap, karakter itu akan diganti dengan spasi.

Vampir
sumber
1
Sangat berbeda dari kode aslinya, tetapi tetap saja, selamat!
Daniel M.
3

Ruby, 38 byte, histokrat , A008592

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

Bisa berbeda dari solusi yang dimaksudkan karena saya menemukan ini dengan tangan.

xsot
sumber
Bagus sekali! Solusi dimaksudkan mirip: "+f+=f"*5.
histokrat
3

05AB1E , 4 byte, Paul Picard , A001317

Kode:

$Fx^

Cobalah online!

Penjelasan:

$      # 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

Urutan pada dasarnya adalah segitiga biner Sierpinski:

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

Dan diterjemahkan menjadi rumus a (n) = a (n - 1) XOR (2 × a (n - 1))

Untungnya, saya ingat yang ini :)

Adnan
sumber
1
Dan itu persis sama, memang: D
Paul Picard
2

Jolf, 5 karakter , Cᴏɴᴏʀ O'Bʀɪᴇɴ , A033536

Kode:

!K!8x

Keluaran:

a(2) = 8
a(10) = 4738245926336
Biarawati Bocor
sumber
Ini adalah jawaban yang persis sama yang saya miliki. Saya akan mempostingnya. :(
Gugatan Dana Monica
Tidak ada jawaban yang asli, tetapi secara fungsional keduanya sama.
Conor O'Brien
@QPaysTaxes Maaf :(
Leaky Nun
2

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

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

Keluaran

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

Penjelasan

Saya sepenuhnya mengabaikan perintah yang ditentukan sebelumnya, kecuali ) karena saya tidak punya cukup ruang.

Perintah yang sebenarnya berguna ada di sini:

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

Membentang ke garis lurus:

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

Dengan penjelasan:

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

Rumusnya adalah a(n) = n(3n+1)/2.

Biarawati Bocor
sumber
+1 for </div>, tag penutup HTML yang entah bagaimana muncul dalam kode Reng.
user48538
@ zyabin101 Tempat yang salah?
Leaky Nun
Nggak. Saya hanya suka menemukan rahasia tersembunyi dalam kode. :-P
user48538
Nah ini ada dalam kode polisi, jadi ...
Leaky Nun
2

05AB1E, 3 byte , Adnan , A000292

LLO

Keluaran

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

Bagaimana itu bekerja

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

Matematika setara adalah sum(sum(n)), di mana sumadalah summation.

Leaky Nun
sumber
Kerja bagus, itu solusi yang persis sama :)
Adnan
2

Jolf, 11 byte, QPaysTaxes , A000005

aσ0xxdxxxxx

Cukup sederhana: aberi σ0(jumlah pembagi) x, lalu masukkan barang yang tidak berguna di bagian akhir.

Cobalah online! Tombol test suite agak rusak, tetapi masih menunjukkan hasil yang tepat.

(Anda bisa membuatnya menjadi dua byte! Hanya σ0 akan dilakukan dengan baik.)

Conor O'Brien
sumber
1
Wow! Le builtins minuscules! +1
Adnan
1
Ini tidak seperti apa yang saya miliki, tetapi pasti berhasil. Milik saya begitu lama karena Anda tidak menyebutkan menemukan pembagi dalam dokumen.
Dana Gugatan Monica
@ QPaysTaxes Saya kira saya perlu memperbarui dokumen: P Tapi serius, cukup Ctrl + F kode sumber;)
Conor O'Brien
Saya memasukkan kode asli saya ke pertanyaan saya jika Anda ingin melihatnya. Dalam retrospeksi, saya seharusnya menunjukkan karakter yang berbeda: P
Fund Monica's Lawsuit
2

Python 2, 87 byte , Sp3000 , A083054

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

Sebenarnya tidak terlalu sulit. Hanya mencari urutan yang memenuhi kendala sampai saya menemukan satu yang bisa dihasilkan di ruang yang diberikan.

LegionMammal978
sumber
2

Jolf , 11 byte, RikerW , A011551

Kode:

c*mf^+91x~P

Penjelasan:

     +91     # add(9, 1) = 10
    ^   x    # 10 ** input
  mf         # floor function (no-op)
 *       ~P  # multiply by phi
c            # ¯\_(ツ)_/¯

Coba di sini .

Adnan
sumber
cadalah "cast to integer"
Conor O'Brien
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####`

Saya yakin kode aktual menghasilkan urutan yang lebih rumit dari ini, tetapi hanya dengan dua output, urutan OEIS ini sederhana dan cocok dengan mereka.

Tanpa semua karakter yang diabaikan, algoritma itu adil x=>x?Math.pow(10,x-1):0.

pengguna81655
sumber
2

05AB1E , 5 byte, Luis Mendo , A051696

Kode:

Ðms!¿

Penjelasan:

Ð      # 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.

Jadi, pada dasarnya ini menghitung gcd (n !, n n ) , yaitu A051696 .

Cobalah online! .

Adnan
sumber
2

PHP, 18 byte, masukkan nama pengguna di sini , A023443

Kode:

echo$argv[1]+0+~0;

Keluaran:

a(0) = -1
a(1) = 0
jimmy23013
sumber
Pendekatan yang sangat bagus. Sumber saya adalah sedikit berbeda: echo$argv[1]+-+!0;. :)
masukkan nama pengguna di sini
1

J, 8 byte, Kenny Lau , A057427

Kode:

(-%- )\.

Keluaran:

a(0) = 0
a(1..29) = 1

Saya tidak berpikir ini dimaksudkan. Dan saya tidak tahu mengapa saya memiliki perilaku ini. Tapi itu berhasil.

jimmy23013
sumber
Akan menambahkan satu lagi pembatasan xd
Leaky Nun
1

Pyth , 70 byte, FliiFe , A070650

Kode (dengan versi dikaburkan di bawah):

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)

Ini pada dasarnya tidak:

=^Q6%Q27

Ini menghitung a (n) = n 6 % 27 , yaitu A070650 . Penjelasan:

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

Coba di sini

Adnan
sumber
Ups, bukan itu. Saya memperbarui jawaban saya dengan yang lain
FliiFe
Dari aturan, ini valid. Selamat!
FliiFe
Saya kira saya bisa memberi tahu Anda urutannya sekarang, A007770 (diindeks 0)
FliiFe
@FliiFe Oh, saya tidak akan pernah menduga bahwa: p
Adnan
Sebenarnya, jika Anda tahu urutannya, ini dapat dengan mudah terlihat, tetapi jika Anda tidak tahu, itu menjadi sangat sulit
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

Kode yang dikaburkan:

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

Output:

>>> a(0)
0
>>> a(4)
2
>>> a(16)
8
>>> a(20)
42
FliiFe
sumber
Persis seperti yang saya miliki. Diharapkan itu mudah, jujur.
CAD97