Kode dekat dengan tantangan: Jumlah bilangan bulat


39

Ini adalah tantangan sederhana: Diberikan urutan bilangan bulat, temukan jumlah semua bilangan bulat di dalamnya.

Tetapi dengan twist. Skor Anda adalah jarak Levenshtein antara kode Anda dan frasa berikut (Tantangan):

Diberikan satu set bilangan bulat, cari jumlah semua bilangan bulat di dalamnya.

Anda dapat mengasumsikan tidak ada baris baru atau spasi tambahan di input.

Contoh input / output:

Input: 1 5 -6 2 4 5
Output: 11
Input: 1 -2 10
Output: 9

Kalkulator online untuk jarak Levenshtein dapat ditemukan di sini: http://planetcalc.com/1721/


4
Saya tidak bisa tidak memikirkan ini
JohnE

7
Wow, kreativitas begitu banyak orang xD ... cough comment abusers cough

1
Apakah Anda pikir ini harus memiliki sekuel dengan tantangan lain tetapi kepala sekolah Levenshtein jarak yang sama? Tidak yakin apakah ini dianggap layak-sekuel atau tidak.

1
@NicoA pasti! Mungkin satu-satunya masalah adalah tugas ini terlalu mudah.
Maltysen

2
@NicoA Jika Anda melakukannya, berhati-hatilah dalam mendefinisikan apa yang tidak diizinkan. Banyak bahasa memungkinkan string mentah melayang, misalnya.
xnor

Jawaban:


58

Python, jarak 3

#Given a set of integers, find the 
sum#of all integers in it.

Ini memberikan fungsi bawaan sum, yang dapat menjumlahkan set seperti sum({3,5,7})==17. Bagian yang tersisa dikomentari. Ini memiliki jarak 3, dengan 3 suntingan:

  • Tambahkan inisial #
  • Tambahkan baris baru
  • Ganti ruang setelah sumdengan#

3
Fitur lain yang berguna dari sintaks mirip bahasa Inggris yang indah
qwr

1
Satu-satunya pertanyaan saya adalah bagaimana menggunakannya karena ini bukan program lengkap, dan (secara teori) Anda bahkan tidak perlu dalam kode Anda karena ini adalah built-in
Beta Decay

1
@ BetaDecay Ini berfungsi karena aturan bahwa fungsi diizinkan secara default dan literal fungsi diizinkan untuk fungsi .
xnor

54

Julia, jarak 27 26

Tidak ada komentar!

Given(a)=(Set;of;integer; find; [sum(a),all,integer,in][1])

Ini menciptakan fungsi yang disebut Givenyang menerima array dan mengembalikan jumlah elemen-elemennya. Karena banyak builtin Julia memiliki nama yang relevan (tetapi tidak relevan dengan perhitungan di sini), kita bisa daftar beberapa dibatasi dengan titik koma. Selama mereka bukan hal terakhir yang terdaftar, mereka tidak akan dikembalikan. Bagian terakhir sebenarnya membuat array yang berisi jumlah dan tiga fungsi dan memilih elemen pertama, jumlah.


Tidak ada komentar yang pasti lebih dalam semangat tantangan. Kerja bagus.
Christopher Wirt

@ChristopherWirt Terima kasih! :)
Alex A.

4
Bisakah saya menyarankan perbaikan? Given=(a;set;of=integer; find;th;[sum,of,all,integer, in][])- "Diberi" maka masih bekerja sama, tetapi ini memiliki jarak 18.
Glen O

22

APL, jarak 6 3

Disimpan 3 jarak ...? terimakasih untuk Dennis!

+/⍝en a set of integers, find the sum of all integers in it.

Ini menjumlahkan array yang diberikan (+/ ). Sisa kalimat ditambahkan ke bagian akhir menggunakan komentar ( ).


1
Anda tidak perlu {dan ⍵}. +/sudah menjadi fungsi yang valid.
Dennis

@ Dennis Luar Biasa, terima kasih banyak atas sarannya!
Alex A.

10

GolfScript, 5

~{Given a set of integers+ find the sum of all integers in it}*

Ini adalah program lengkap yang tidak menggunakan komentar (tetapi banyak noops).

Cobalah online di Web GolfScript .


9

R, Jarak 37 36 34

Tanpa menggunakan komentar :)

 as.integer ( sum (scan(,integer( ) )))

Perhatikan ada ruang di awal.


8

Mathematica, jarak 17

Given a set of integers find the sum of all integers in it*0+Total@Input[]

Itu tidak menggunakan komentar atau no-ops, tetapi sebaliknya menyatakan semua kata sebagai variabel, dan kemudian menghilangkannya dengan mengalikan dengan nol.

Ini juga memiliki keuntungan menjadi satu-satunya jawaban yang benar-benar mengambil satu set bilangan bulat sebagai inputnya.

Input {1,2,3}memberikan output 6seperti yang diharapkan.

Sayangnya, Sumfungsi Mathematica tidak melakukan tugas dalam pertanyaan, oleh karena itu memerlukan jumlah byte yang lebih besar.


Given a set of integers find the sum of all *0+Total@Input[]jarak 14
Leaky Nun

6

Jawa - 43 41

Saya mencoba.

float a_set_of(int[] r){return IntStream.of(r).sum()}//n it.
Given a set of integers, find the sum of all integers in it.

Jawa: P.


Saya pikir Anda dapat mengubah argumen Anda dalam fungsi dari r ke untuk menyimpan satu jarak edit.
Element118

@ Element118 Tangkapan bagus. Juga mengubah jenis kembali ketika saya berada di sana untuk memiliki nama metode yang lebih baik.
Anubian Noob

2
tidak bisakah Anda menggunakan "int a_" sebagai awal cuplikan? (satu spasi sebelum int dan 2 setelahnya sebelum a_
masterX244

6

RProgN , Jarak 2.

Given aset of integers, ;find the sum of all integers in it.

Dalam RProgN, a, set, find, dan sum adalah semua perintah. Segala sesuatu yang lain per default diabaikan dalam sintaksis. a mendorong alfabet ke tumpukan, yang akan menyebabkan jumlah gagal. Set tidak pernah memiliki cukup argumen, jadi selalu gagal, salah. Cari salah memiliki jumlah argumen yang salah, atau mencoba membandingkan alfabet dengan tumpukan input, yang tidak berfungsi.

a dan set keduanya bisa 'diperbaiki' dengan menghilangkan spasi di antara itu, aset bukan fungsi, jadi diabaikan. Find hanya memiliki karakter tambahan yang dimasukkan di awal, menyebabkannya juga tidak dikenali, dan diabaikan. Hanya jumlah yang tersisa, yang dengan mudah menjumlahkan isi tumpukan input.

Akhirnya, RProgN mungkin memenangkan sesuatu!

Cobalah secara Online!


4

CJam, 7 6 5

{:+}e# a set of integers, find the sum of all integers in it.

Ini adalah fungsi anonim yang memunculkan array dari tumpukan dan mengembalikan integer.

Terima kasih kepada @AboveFire karena mempersingkat jarak dengan 1.

Cobalah online.


4

Matlab, jarak 29 28

Given_a_set_of_integers=@(findthe)sum(all(1)*findthe)

Tanpa menggunakan komentar :-)

Kode ini dalam bentuk fungsi anonim. Saya mengasumsikan input adalah vektor (1D-array) angka.

Contoh:

>> Given_a_set_of_integers=@(findthe)sum(all(1)*findthe)
Given_a_set_of_integers = 
    @(findthe)sum(all(1)*findthe)

>> Given_a_set_of_integers([1 5 -6 2 4 5])
ans =
    11

3

O , 5

M] + o "Diberikan satu set bilangan bulat, temukan jumlah semua bilangan bulat di dalamnya.

Angka harus dalam heksadesimal dan dalam notasi negatif terbalik:

  • -6 => 6_
  • -4 => 4_
  • -10 => A_

Cobalah online


1
Yay linknya bekerja!
Maltysen

Demo yang bagus! Namun, bukankah menyebutnya semacam pembantaian IDE?
kirbyfan64sos

@ kirbyfan64sos Benar-benar, tapi saya ingin menambahkan lebih banyak fitur seperti penyorotan sintaks dan yang lainnya. Untuk saat ini, itu hanya juru bahasa.
fase

Saya pikir tautan ke halaman O esolangs akan lebih bermanfaat.
mbomb007

@ mbomb007 Tapi itu sangat ketinggalan zaman; setengah dari hal-hal di sana tidak berfungsi, dan itu hanya sedikit dari bahasa yang didokumentasikan.
fase

3

K, 60 5

+/ / Given a set of integers, find the sum of all integers in it.

Saya menebak simbol tidak berjalan dengan baik dengan jarak-apa pun ...

Ha ha ha. Awalnya, saya tidak tahu apa jarak LeveXXX itu, jadi saya mendapat 60. Kemudian, berkat komentar yang membantu, turun menjadi 5.


Bukannya Anda menggunakan simbol, jarak Levenshtein adalah #dari penambahan, penghapusan, penggantian. sehingga Anda memiliki 60 penghapusan dari string asli.
Maltysen

Ini bukan simbol, hanya saja kode Anda sangat pendek sehingga panjang frasa - panjang kode Anda = 60. Aduh.

2
Anda tahu Anda bisa menggulir ke atas untuk mendapatkan ejaan "Levenshtein," yang benar, bukan? ;)
Alex A.

@AlexA. Ini lebih lucu dari ini. :)
kirbyfan64sos

2
Saya tidak menyalahkannya. Saya harus memeriksa ejaan sekitar 10 kali sebelum saya hanya menyalinnya.

3

F #, jarak 21

let ``Given a set of integers, find the sum of all integers in it`` x = Seq.sum x

Harus menyukai kemampuan untuk menggunakan kutu ganda untuk memberi fungsi nama dengan spasi di dalamnya.

Pemakaian:

[1;2;3] |> ``Given a set of integers, find the sum of all integers in it`` |> printfn "%i"

6


3

Pip, jarak 3

Bergabung dengan klub golflang jawaban-komentar-tapi-banyak-tanpa-ops golflang ...

Given a set of integers, find the sum of all integers in $+g

Repositori GitHub untuk Pip

Kode praktis mendokumentasikan dirinya sendiri; mungkin s/in/using/untuk deskripsi yang lebih akurat. Integer yang diberikan sebagai argumen baris perintah dibaca ke dalam daftar g, yang dilipat di sini sebagai tambahan dan hasilnya dicetak otomatis. Kebanyakan yang lainnya hanyalah variabel, yang merupakan no-ops.

Saya agak terkejut pada awalnya yang s, fbekerja tanpa mengeluh, karena fmerujuk pada fungsi utama dan mengambil berbagai blok kode tidak masuk akal. Tapi kemudian saya menyadari: ,operator jangkauan, ketika diberi argumen fungsi, hanya membangun fungsi lain (seperti halnya banyak operator di Pip). Jadi saya pikir s, fmengevaluasi {Given a set of integers, find the sum of all integers in " ",$+g}. (Lagi pula yang dibuang.)

Satu poin terakhir: kode ini berfungsi dengan versi Pip saat ini, di mana saya belum ditugaskan Guntuk apa pun. Jika dalam beberapa versi mendatang saya membuat Goperator biner atau terner, maka versi jarak-4 akan diperlukan. Menggunakan givenbukanGiven akan bekerja dengan baik.


3

Haskell, jarak 11

Tidak ada komentar!

const sum"Given a set of integers, find the sum of all integers in it."

Pemakaian:

> const sum"Given a set of integers, find the sum of all integers in it." $ [1..10]
55

3

Cubix , Jarak 9

@ivOn a ;et I+ i?tegers, fu;d <he sum of all integers in it.

Cobalah online!

Ini membungkus ke kubus

      @ i v
      O n a
      ; e t
I + i ? t e g e r s , f
u ; d < h e s u m o f a
l l i n t e g e r s i n
      i t .
      . . .
      . . .

Kode operasinya adalah

  • I+i Masukkan integer, tambahkan ke TOS lalu masukkan karakter
  • ?Nilai karakter uji. Redirect ke kiri untuk -1 (akhir input) atau kanan untuk yang lain (0 tidak dapat diinput)
    • ;O@ pop TOS, jumlah output dan keluar
    • <;u redirect, pop TOS dan u-turn ke awal

2

Pyth - 4

Hanya menempatkan kode yang sebenarnya, sQdi depan string tanpa batasan oleh spasi.

sQ "Given a set of integers, find the sum of all integers in it.

Cobalah online di sini .


1

PHP4.1, jarak 25

Yang ini cukup panjang dan benar-benar terlambat.

Tapi bagaimanapun, ini dia:

<?=$n_a_set_of_integers_fi=array_sum($f_all_integers_in_i);

Agar ini berfungsi, Anda hanya perlu memberikannya array di POST / GET / COOKIE / sesi, menggunakan kunci f_all_integers_in_i.


2
Tidak ada komentar trolling yay!
Anubian Noob

1

Pyt , jarak 1

Given a set of integers, find the Ʃum of all integers in it.

Semua karakter alfanumerik adalah no-ops di Pyt, dan jumlah daftar hanya membutuhkan satu karakter: Ʃ

Cobalah online!


0

C ++ 17, jarak 44 29

Variadic Generic Lambda FTW

[](auto...t){return(t+...);}//the sum of all integers in it.

Solusi sebelumnya

template<class...t>int s(t...l){return(...+l);}//gers in it.



0

Ly , skor 4

&+#Given a set of integers, find the sum of all integers in it.

Perhatikan baris baru yang tertinggal.

Cobalah online!

Kode ini cukup jelas. &+adalah operator penjumlahan Ly, sementara #adalah komentar. Sangat disayangkan bahwa saya harus memasukkan baris baru karena fakta bahwa mengakhiri program dengan baris komentar akan "mengomentari" keluaran tersirat Ly, yang sebenarnya merupakan bug pada penerjemah yang saya sebut fitur.


0

dc, 14

?[+z1 <f]d  sf xp#egers, find the sum of all integers in it.

komentar:

?                   # read numbers
 [                  # start macro
  +                 # add up last two things on stack
   z1 <f            # if stack size is more than 1, execute macro at register 'f'
        ]           # end macro
         d          # dupe it
            sf      # saving one copy to register 'f'
               x    # and executing another
                p   # printing result

TIO

ia mengeluh tentang tumpukan yang kosong jika Anda memasukkan 1 angka, tetapi masih berfungsi, dan penghapusan 0 menghemat 2 beda.


0

Excel VBA, Jarak: 11

Fungsi jendela langsung VBE anonim yang mengambil input dari kisaran [a:a]pada objek ActiveSheet dan output ke jendela langsung VBE

?[Sum(a:a)] 'f integers, find the sum of all integers in it.

0

Brain-Flak , 20

(([]){[{}]{}([])}{})ers, find the sum of all integers in it.

Cobalah online!

Penjelasan

Karena tidak ada tanda kurung dalam teks asli ini bermuara pada masalah di Brain-Flak. Tapi itu masih tidak membuat jawaban ini sepele, karena jarang ada jawaban di Brain-Flak.

Intuisi pertama seseorang mungkin adalah kode berikut

({{}})

Yang berhasil ... kecuali ada nol di tumpukan dalam hal ini hanya menjumlahkan sampai nol. Untuk mengatasi masalah ini kita harus menggunakan ketinggian tumpukan untuk memeriksa bahwa tumpukan tidak kosong. Ini bisa diatur seperti ini

([])    #{ Push stack height }
(       #{ Start Push }
{       #{ Loop until zero }
 <{}>   #{ Silently Pop the last height }
 {}     #{ Grab a value from the stack }
 <([])> #{ Silently push the stack height again }
}       #{ End loop }
{}      #{ Remove last stack height }
)       #{ Push the result }

Yang ini berhasil, tetapi ada yang salah dengan itu. Kami terus membungkam pop dan push dalam loop tetapi hampir sama sehingga harus ada cara untuk membatalkannya. Jika kita mencoba

([])({[{}]{}([])}{})

Kami berakhir nsetiap saat. Jadi, inilah triknya, kita sudah memiliki tempat nduduk di sekitar, kita hanya memindahkannya ke dalam dorongan untuk menyeimbangkan semuanya.

(([]){[{}]{}([])}{})

1
Hanya ingin mengucapkan selamat kepada Anda atas 2^8jawaban ppcg Anda
Taylor Scott


0

Jelly , Jarak: 2

Given a set of integers, find the sum of all integers in it.
S

Cobalah online!

Jelly hanya mengevaluasi tautan utama (baris terakhir) dan perintah eksplisit akan menjalankan tautan lain (baris lain).

Baris terakhir memiliki S, yang menjumlahkan input.

Baris pertama tidak dieksekusi karena tidak ada referensi di tautan utama.


0

Jepret! 4.2.2.9 (+ Alat), sintaks scratchblocks3, jarak 35

Ini sebuah fungsi. integers, find the sum of all inteadalah input.

for each(et)of(integers, find the sum of all inte
change[s v]by(et
end
report(s

Bagaimana ini mengambil input? Apakah input seharusnya disisipkan ke dalam kode? Biasanya kami tidak memperbolehkan input semacam itu tetapi meminta input diambil dari STDIN atau jika kiriman Anda adalah suatu fungsi, maka itu akan diteruskan sebagai argumen.
Wheat Wizard

Tidak, ini adalah fungsi. integers, find the sum of all inteadalah sebuah argumen, hanya saja tidak dibedakan dari variabel reguler dalam sintaks scratchblocks3, itulah sebabnya saya diklarifikasi
Silas Reel
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.