pengantar
Misalkan saya memiliki daftar bilangan bulat, katakanlah L = [-1,2,2,1,2,7,1,4] . Saya suka memiliki keseimbangan dalam hidup saya, jadi saya senang melihatnya memiliki banyak elemen aneh bahkan elemen. Terlebih lagi, ia juga memiliki jumlah elemen yang sama di semua kelas modulo yang terdiri dari 3 elemen:
[-1,2,2,1,2,7,1,4]
0 mod 3:
1 mod 3: 1 7 1 4
2 mod 3: -1 2 2 2
Sayangnya, untuk kelas modulo 4 ini tidak lagi berlaku. Secara umum, kita katakan daftar tidak kosong adalah modulo N seimbang jika ia memiliki jumlah elemen yang sama di semua kelas modulo N yang angka ini bukan 0. Daftar di atas L adalah modulo 2 dan 3 yang seimbang, tetapi modulo tidak seimbang 4.
Tugas
Input Anda adalah daftar L kosong dari bilangan bulat yang diambil dalam format apa pun yang masuk akal. Output Anda adalah daftar bilangan bulat N ≥ 2 sehingga L seimbang modulo N , sekali lagi dalam format yang masuk akal. Urutan output tidak masalah, tetapi seharusnya tidak mengandung duplikat.
Dijamin bahwa hanya ada banyak angka dalam output, yang berarti tepat bahwa tidak semua elemen L terjadi jumlah yang sama kali di dalamnya. Contoh input yang tidak valid adalah [3] , [1,2] dan [0,4,4,0,3,3] . Perhatikan bahwa jumlah terbesar dalam output paling banyak adalah max (L) - min (L) .
Hitungan byte terendah dalam setiap bahasa menang, dan kode-golf standar berlaku.
Uji kasus
[1,1,2] -> []
[1,1,5] -> [2,4]
[1,1,24] -> [23]
[1,2,3,2] -> [2]
[12,12,-4,20] -> [2,3,4,6,8,12,24]
[1,1,12,12,-3,7] -> [3,10]
[-1,2,2,1,2,7,1,4] -> [2,3]
[4,-17,-14,-18,-18,3,5,8] -> []
[-18,0,-6,20,-13,-13,-19,13] -> [2,4,19]
[-11,-19,-19,3,10,-17,13,7,-5,16,-20,20] -> []
[3,0,1,5,3,-6,-16,-20,10,-6,-11,11] -> [2,4]
[-18,-20,14,13,12,-3,14,6,7,-19,17,19] -> [2,3]
[-16,-9,6,13,0,-17,-5,1,-12,-4,-16,-4] -> [3,9]
[-97,-144,3,53,73,23,37,81,-104,41,-125,70,0,111,-88,-2,25,-112,54,-76,136,-39,-138,22,56,-137,-40,41,-141,-126] -> [2,3,6]
Jawaban:
05AB1E , 11 byte
Cobalah online!
sumber
Bahasa Wolfram (Mathematica) ,
5652 byteTerima kasih untuk Tidak pohon untuk menyimpan 4 byte.
Cobalah online!
Trik golf utama adalah dengan menggunakan
jumlah nilai absolut (atau 1-norma)dari nilai kuadrat, dihitung sebagai produk titik dengan dirinya sendiri, sebagai batas atas alih-alihMax@#-Min@#
. Kalau tidak, itu hanya mengimplementasikan spek secara sangat harfiah.sumber
Perl 6 ,
5248 byteMenguji
Menguji
Diperluas:
sumber
Haskell ,
8584 byteCobalah online! Menggunakan jumlah nilai absolut sebagai maksimum dari jawaban Martin Ender .
Sunting: -1 byte berkat Ørjan Johansen.
Penjelasan:
sumber
Sekam , 13 byte
Cobalah online!
sumber
R ,
7572 byteCobalah online!
Menggunakan
table
untuk menghitung jumlah setiap modulo integerx
. Standar deviasisd
dari satu set angka adalah nol jika mereka semua sama, dan sebaliknya positif. Oleh karena!sd(table(L%%x))
ituTRUE
dimanapunL
mod mod-seimbangx
dan salah sebaliknya. Nilai-nilai ini kemudian digabungkan menjadiF
.which
lalu mengembalikan indeks nilai sebenarnya dari fungsi. Karena R menggunakan pengindeksan berbasis 1 danF
awalnya merupakan vektor panjang-satu dengan nilaiFALSE
, ini akan dengan benar mengembalikan nilai yang dimulai dengan2
.Orang mungkin berharap fungsi builtin
range
untuk menghitung rentang dataset , yaitumax(D)-min(D)
, tetapi sayangnya menghitung dan mengembalikan vektorc(min(D), max(D))
.sumber
Bersih , 121 byte
Menggunakan trik penjumlahan mutlak dari jawaban Martin Ender.
Golf:
Dapat dibaca:
Cobalah online!
sumber
Jelly , 12 byte
Cobalah online!
Terima kasih kepada user202729 untuk menyimpan byte dan untuk Martin Ender (secara tidak langsung) karena menyimpan byte.
Bagaimana itu bekerja
Alternatif 12-by-one liner dapat dicoba secara online!
sumber
AS
(S
umA
bsolutes) juga.ḟ0
tidak diperlukan dalam obrolan .Python 3,
120102 byteTidak cantik golf.
-18 byte terima kasih kepada Tn . Xcoder .
Cobalah online!
sumber
MATL , 19 byte
-4 byte terima kasih kepada Luis Mendo!
Cobalah online!
Pelabuhan saya jawaban dalam R .
sumber
S5L)d
alih- alihX>GX<-
dan8#u
bukannyaFFFT#u
[1 0]
(tapi saya tahu itu mungkin) jadi5L
berguna, dan saya*still* really need to go and properly read the docs for
# `:( tapi terima kasih!#
, menentukan jumlah yang lebih besar dari jumlah maksimum output hanya memilih output individual. Dengan fungsiu
maksimal adalah4
, sehingga5#u
adalahT#u
,6#u
adalahFT#u
dllJavaScript (ES6), 117 byte
Menghasilkan daftar nilai yang dipisahkan ruang.
Uji kasus
Tampilkan cuplikan kode
sumber
Clojure, 91 byte
Menggunakan
frequencies
kode golf tidak ideal.sumber
J, 38 byte
Kredit diberikan kepada Tn. Xcoder untuk jumlah trik nilai absolut.
Sunting di tautan TIO jika Anda mau - Saya telah membuatnya dengan cepat.
Penjelasan dan tautan TIO segera hadir (ish).
sumber
APL (Dyalog) ,
43413830 byteIns dalam kode menceritakan keseluruhan cerita.
8 byte disimpan berkat @ Adám
Cobalah online!
sumber
∊x⊆⍨1=⊂(≢∘∪1⊥|∘.=|)¨⍨x←1+∘⍳1⊥|