Tulis program atau fungsi yang, diberi string input dan deviasi standar σ
, mengeluarkan string tersebut sepanjang kurva distribusi normal dengan mean 0
dan deviasi standar σ
.
Kurva distribusi normal
The y
koordinat masing-masing karakter c
adalah:
dimana σ
diberikan sebagai masukan, dan di mana x
adalah x
sumbu koordinat c
.
- Karakter di tengah-tengah string memiliki
x = 0
. Jika panjang string genap, salah satu dari dua karakter tengah dapat dipilih sebagai pusat. - Karakter dipisahkan oleh langkah-langkah dari
0.1
(misalnya karakter di sebelah kiri dari tengah yang dimilikix = -0.1
, yang di sebelah kanan yang di tengahx = 0.1
, dll.).
Mencetak string
- Garis, seperti karakter, dipisahkan oleh langkah-langkah
0.1
. - Setiap karakter dicetak pada garis dengan
y
nilai yang paling dekat dengan nilainya sendiriy
(jika nilainya tepat di antara nilai dua garis, pilih satu dengan nilai terbesar (seperti bagaimanaround
biasanya kembali1.0
untuk0.5
)). - Misalnya, jika
y
koordinat nilai tengah (yaitu nilai maksimum) adalah0.78
dany
koordinat karakter pertama adalah0.2
, maka akan ada 9 baris: karakter tengah dicetak pada garis0
dan karakter pertama dicetak pada garis8
.
Masukan dan keluaran
- Anda dapat mengambil kedua input (string dan
σ
) sebagai argumen program, melaluiSTDIN
, argumen fungsi atau yang serupa dalam bahasa Anda. - String hanya akan berisi
ASCII
karakter yang dapat dicetak . Tali dapat kosong. σ > 0
.- Anda dapat mencetak output ke
STDOUT
, dalam file, atau mengembalikannya dari suatu fungsi ( selama itu adalah string dan tidak mengatakan daftar string untuk setiap baris). - Baris baru yang tertinggal dapat diterima.
- Ruang trailing dapat diterima selama tidak membuat garis melebihi panjang garis terakhir (sehingga tidak ada ruang trailing yang dapat diterima pada baris terakhir).
Uji kasus
σ String
0.5 Hello, World!
, W
lo or
l l
e d
H !
0.5 This is a perfectly normal sentence
tly
ec n
f o
r r
e m
p a
a l
s se
This i ntence
1.5 Programming Puzzles & Code Golf is a question and answer site for programming puzzle enthusiasts and code golfers.
d answer site for p
uestion an rogramming
Code Golf is a q puzzle enthusia
Programming Puzzles & sts and code golfers.
0.3 .....................
.
. .
. .
. .
. .
. .
. .
. .
... ...
Mencetak gol
Ini adalah kode-golf ,
nsw
a er
t
s i
e n
t
or by
sh te
so the s wins.
Jawaban:
Python 3 dengan SciPy ,
239233 byteSebuah fungsi yang mengambil input melalui argumen standar deviasi
s
dan stringt
, dan mencetak hasilnya ke STDOUT.Bagaimana itu bekerja
Cobalah di Ideone
sumber
Ruby:
273254 BytesTerima kasih banyak kepada Kevin Lau karena telah menghemat 18 byte!
sumber
->n,s{...
baik-baik saja. Anda tidak perlu tanda kurung saat menetapkan beberapa variabel:o,g,r,l=[],0,{}
berfungsi dengan baik.$/
dapat digunakan di tempat?\n
. Urutan operasi berarti Anda tidak harus meletakkan semua kelipatan Anda pada baris 5 di parens.puts
secara otomatis membuka array dan memisahkannya dengan baris baru saat mencetak.n.gsub(/./){...
berdetakn.each_char{...
sedikit karena Anda dapat mengambil|c|
dan meletakkan di$&
mana disebutkanc
. Buat string nilai hash Anda (mulai dengan||=""
tidak||=[]
) dan Anda dapat mengubahc[...]*""
kec[...]