Jika Anda akan membuat beberapa berita palsu, Anda ingin membuat beberapa data untuk mendukungnya. Anda harus sudah memiliki beberapa kesimpulan yang terbentuk sebelumnya dan Anda ingin beberapa statistik memperkuat argumen dari logika Anda yang salah. Tantangan ini seharusnya membantu Anda!
Diberikan tiga nomor input:
- N - jumlah titik data
- μ - rata-rata titik data
σ - standar deviasi titik data, di mana μ dan σ diberikan oleh:
Keluarkan daftar angka yang tidak terurut, 𝑥 i , yang akan menghasilkan N , μ , dan σ yang diberikan .
Saya tidak akan terlalu pilih-pilih tentang format I / O, tapi saya berharap beberapa desimal untuk μ , σ , dan poin data output. Minimal, setidaknya 3 angka penting dan besarnya setidaknya 1.000.000 harus didukung. IEEE mengapung baik-baik saja.
- N akan selalu berupa bilangan bulat, di mana 1 ≤ N ≤ 1.000
- μ dapat berupa bilangan real apa pun
- σ akan selalu menjadi ≥ 0
- titik data dapat berupa bilangan real apa pun
- jika N adalah 1, maka σ akan selalu menjadi 0.
Perhatikan bahwa sebagian besar input akan memiliki banyak kemungkinan keluaran. Anda hanya perlu memberikan satu output yang valid. Outputnya mungkin deterministik atau non-deterministik.
Contohnya
Input (N, μ, σ) -> Possible Output [list]
2, 0.5, 1.5 -> [1, 2]
5, 3, 1.414 -> [1, 2, 3, 4, 5]
3, 5, 2.160 -> [2, 6, 7]
3, 5, 2.160 -> [8, 4, 3]
1, 0, 0 -> [0]
sumber
+ve
dan apa-ve
artinya?Jawaban:
Pyth ,
443534 byteCobalah online! (Kode di atas mendefinisikan fungsi.
:.*
Ditambahkan pada tautan untuk menjalankan fungsi.)Matematika
Ini membangun data secara simetris. Jika
N
genap, maka data hanyalah rata-rata plus atau minus dari standar deviasi. Namun, jikaN
ganjil, maka kami baru saja membuka sekaleng cacing, karena rerata harus ada agar data menjadi simetris, sehingga fluktuasi harus dikalikan dengan faktor tertentu.Jika
n
adaμ+σ
.μ-σ
.Jika
n
anehμ
.μ+σ*sqrt(n/(n-1))
.μ-σ*sqrt(n/(n-1))
.sumber
MATL , 22 byte
Terima kasih kepada @DigitalTrauma untuk koreksi.
Agar input:
N
,σ
,μ
.Cobalah online!
Atau lihat versi modifikasi yang juga menghitung rata-rata dan standar deviasi dari data yang dihasilkan, sebagai cek.
Penjelasan
Kode ini dibagi menjadi empat bagian:
:
menghasilkan array di[1 2 ... N]
manaN
diambil sebagai input implisit.t&1Zs/
membagi angka-angka itu dengan standar deviasi empirisnya (dihitung normalisasi denganN
), dantYm-
kurangi rata-rata empiris dari nilai yang dihasilkan. Ini memastikan bahwa hasilnya memiliki mean0
empiris dan standar deviasi empiris1
.*
dikalikanσ
dan+
ditambahμ
, keduanya diambil sebagai input implisit.tZN?x3G
menangani kasus khusus yangN = 1
,σ = 0
, yang output harusμ
. Jika memang demikian halnya, maka deviasi standar empiris yang dihitung pada langkah kedua adalah0
, divisi memberiinf
, dan mengalikan denganσ
pada langkah ketiga memberiNaN
. Jadi yang dilakukan oleh kode adalah: jika array yang diperoleh terdiri dari semuaNaN
nilai (kodetZN?
), hapus (x
) dan tekan input ketiga (3G
), yaituμ
.sumber
Python , 50 byte
Cobalah online!
Gunakan
n
distribusi -element berikut dengan mean0
dan sdev1
:1/n
(mis1
elemen), output(n-1)**0.5
1-1/n
(yaitun-1
elemen), output-(n-1)**(-0.5)
Ini
m
discalcal ulang ke mean dan sdevs
dengan mentransformasikannyax->m+s*x
. Menyebalkan,n=1
memberikan pembagian dengan kesalahan nol untuk nilai yang tidak berguna, jadi kami meretasnya dengan melakukan/(n-1%n)**.5
, dengan1%n
memberi0
untukn==1
dan1
sebaliknya.Anda mungkin berpikir
(n-1)**.5
dapat dipersingkat menjadi~-n**.5
, tetapi eksponensial terjadi terlebih dahulu.A
def
lebih panjang satu byte.sumber
R,
836253 byteJika
n=1
, maka ia mengembalikanm
(karenascale
akan kembaliNA
), jika tidak maka skala data[1,...,n]
untuk memiliki rata-rata 0 dan (sampel) standar deviasi 1, sehingga itu dikalikan dengans*sqrt(1-1/n)
untuk mendapatkan standar deviasi populasi yang benar, dan menambahm
bergeser ke rata-rata yang sesuai. Terima kasih kepada Dason karena memperkenalkan saya pada fungsi skala dan menjatuhkan byte-byte itu!Cobalah online!
sumber
1:n
alih-alihrt(n,n)
menyimpan 4 byte. Danscale
fungsinya mungkin bisa bermanfaat.scale
mana yang bagus.Jelly , 20 byte
Cobalah online!
Program lengkap mengambil tiga argumen baris perintah: n , μ , σ .
Bagaimana?
Menciptakan nilai lantai (n / 2) berjarak sama dari nilai rata-rata dan nilai pada nilai rata-rata jika n ganjil sehingga standar deviasi benar ...
sumber