Napisz program lub funkcję, która przy danym ciągu wejściowym i standardowym odchyleniu σ
wyprowadza ten ciąg wzdłuż krzywej rozkładu normalnego ze średnią 0
i odchyleniem standardowym σ
.
Krzywa rozkładu normalnego
y
Współrzędna każdego znaku c
jest:
gdzie σ
podano jako dane wejściowe, a gdzie x
jest x
współrzędna osi c
.
- Znak na środku łańcucha ma
x = 0
. Jeśli długość łańcucha jest równa, jako środek można wybrać jeden z dwóch środkowych znaków. - Znaki są oddzielane krokami
0.1
(np. Znak na lewo od środkowego max = -0.1
, znak na prawo od środkowegox = 0.1
itp.).
Drukowanie ciągu
- Linie, podobnie jak znaki, są oddzielone krokami
0.1
. - Każda postać jest drukowany na linii z
y
wartości, która jest najbliżej własnejy
wartości (jeśli wartość jest dokładnie między wartościami dwóch linii, należy wybrać jedną z największych wartości (podobnie jak jakround
zwykle wraca1.0
do0.5
)). - Na przykład, jeśli
y
współrzędna wartości środkowej (tj. Wartości maksymalnej) jest,0.78
ay
współrzędna pierwszego znaku to0.2
, to będzie 9 linii: środkowy znak jest drukowany w linii,0
a pierwszy znak jest drukowany w linii8
.
Wejścia i wyjścia
- Możesz przyjmować oba dane wejściowe (ciąg znaków i
σ
) jako argumenty programu, argumentySTDIN
funkcji lub cokolwiek podobnego w swoim języku. - Ciąg będzie zawierał tylko znaki do wydrukowania
ASCII
. Ciąg może być pusty. σ > 0
.- Możesz wydrukować dane wyjściowe do
STDOUT
, w pliku lub zwrócić je z funkcji ( o ile jest to ciąg znaków i nie wypowiadać listy ciągów dla każdej linii). - Końcowa nowa linia jest dopuszczalna.
- Końcowe spacje są dopuszczalne, o ile nie powodują, że linia przekracza długość ostatniej linii (więc końcowe kreski nie są dopuszczalne).
Przypadki testowe
σ 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 .....................
.
. .
. .
. .
. .
. .
. .
. .
... ...
Punktacja
To jest golf golfowy ,
nsw
a er
t
s i
e n
t
or by
sh te
so the s wins.
Odpowiedzi:
Python 3 z SciPy ,
239233 bajtówFunkcja, która pobiera dane wejściowe za pomocą argumentu odchylenia standardowego
s
i łańcuchat
i wypisuje wynik do STDOUT.Jak to działa
Wypróbuj na Ideone
źródło
Rubin:
273254 bajtówOgromne podziękowania dla Kevina Laua za uratowanie 18 bajtów!
źródło
->n,s{...
jest w porządku. Nie potrzebujesz nawiasów podczas przypisywania wielu zmiennych:o,g,r,l=[],0,{}
działa dobrze.$/
może być używany zamiast?\n
. Kolejność operacji oznacza, że nie musisz umieszczać wszystkich swoich mnożników w linii 5 w parens.puts
automatycznie rozwija tablice i oddziela je znakami nowej linii podczas drukowania.n.gsub(/./){...
bijen.each_char{...
nieco, ponieważ możesz wyjąć|c|
i umieścić$&
tam, gdzie była jakakolwiek wzmiankac
. Utwórz ciąg wartości hash (zacznij od||=""
nie||=[]
), a możesz zmienićc[...]*""
nac[...]