Напишите программу или функцию, которая, учитывая входную строку и стандартное отклонение σ
, выводит эту строку вдоль кривой нормального распределения со средним 0
и стандартным отклонением σ
.
Кривая нормального распределения
y
Координата каждого символа c
является:
где σ
даются в качестве входных данных, и где x
это x
ось координаты c
.
- Символ в центре строки имеет
x = 0
. Если длина строки четная, любой из двух средних символов может быть выбран в качестве центра. - Символы разделяются по шагам
0.1
(например, символ слева от центраx = -0.1
, который находится справа, от середины иx = 0.1
т. Д.).
Печать строки
- Строки, как символы, разделены шагами
0.1
. - Каждый символ печатается в строке со
y
значением, наиболее близким к его собственномуy
значению (если значение находится точно между значениями двух строк, выберите тот, который имеет наибольшее значение (так же, какround
обычно возвращается1.0
для0.5
)). - Например, если
y
координата центрального значения (т.е. максимальное значение)0.78
иy
координата первого символа0.2
, то будет 9 линий: центр символ печатается на линии0
и первый символ печатается на линии8
.
Входы и выходы
- Вы можете принять оба входа (строку и
σ
) в качестве аргументов программы, черезSTDIN
аргументы функции или что-то подобное на вашем языке. - Строка будет содержать только для печати
ASCII
символы. Строка может быть пустой. σ > 0
,- Вы можете распечатать вывод
STDOUT
в файл или вернуть его из функции ( если это строка, а не список строк для каждой строки). - Завершающая новая строка приемлема.
- Конечные пробелы допустимы, если только они не превышают длину последней строки (поэтому в последней строке нельзя использовать пробелы).
Контрольные примеры
σ 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 .....................
.
. .
. .
. .
. .
. .
. .
. .
... ...
счет
Это код-гольф ,
nsw
a er
t
s i
e n
t
or by
sh te
so the s wins.
Ответы:
Python 3 с SciPy ,
239233 байтаФункция, которая принимает входные данные через аргумент стандартного отклонения
s
и строкуt
и печатает результат в STDOUT.Как это устроено
Попробуйте это на Ideone
источник
Рубин:
273254 байтаОгромное спасибо Кевину Лау за сохранение 18 байт!
источник
->n,s{...
хорошо. Вам не нужны скобки при назначении нескольких переменных:o,g,r,l=[],0,{}
работает просто отлично.$/
может быть использован вместо?\n
. Порядок операций означает, что вам не нужно помещать все свои умножения в строку 5 в скобках.puts
автоматически распечатывает массивы и разделяет их символами новой строки при печати.n.gsub(/./){...
бьетn.each_char{...
немного, потому что вы можете вынуть|c|
и положить,$&
где любое упоминание оc
было. Создайте строки хеш-значений (начните с||=""
not||=[]
), и вы можете изменить ихc[...]*""
наc[...]