Skip to content

Instantly share code, notes, and snippets.

@dionys
Last active August 29, 2015 14:02
Show Gist options
  • Save dionys/2e6166fef29f79246576 to your computer and use it in GitHub Desktop.
Save dionys/2e6166fef29f79246576 to your computer and use it in GitHub Desktop.
YAPC::Russia 2014 Perl Golf
#!perl -plaF'[,:]\s'
$n//=pop@F;pop@F;push@$_,@F
for@F}{$i=1;for(;$n;$i++){$n{$_}//=$n
ne$_?$i:0for@$n;@$n=();($n)=grep@$_,keys%n}$_=$n{Erdos}//Inf
@dionys
Copy link
Author

dionys commented Jun 14, 2014

https://github.com/timurn/yr2014golf

Конкурс Perl Golf для YAPC::Russia 2014

«Число Эрдёша»

Венгерский математик Эрдёш написал за свою жизнь 1475 статей, причём многие из этих работ были созданы в соавторстве. Традиционно в математике совместная статья является скорее исключением, чем правилом, поэтому наличие такого большого числа соавторов породило в фольклоре математиков понятие «число Эрдёша».

Это число определяется следующим образом: у самого Эрдёша оно равно нулю, у непосредственных соавторов Эрдёша это число равно единице, соавторы людей с числом Эрдёша, равным n, имеют число Эрдёша n+1, из нескольких вариантов связей выбирается самый короткий, т. е. минимально возможное число.

Входные данные: Первая строка содержит фамилию учёного, для которого нужно определить число Эрдёша. Последующие строки содержат список публикаций: фамилии авторов через запятую и пробел, и название работы, отделённое двоеточием. Заданная фамилия может не присутствовать ни в одной публикации.

Пример: Chen Smith, M.N., Martin, G., Erdos, P.: Newtonian forms of prime factor matrices Erdos, P., Reisig, W.: Stuttering in petri nets Smith, M.N., Chen, X.: First oder derivates in structured programming Jablonski, T., Hsueh, Z.: Selfstabilizing data structures

Данные подаются на STDIN: cat data | perl golf.pl

Необходимо вывести число Эрдёша для заданного учёного. В случае, если связи с Эрдёшем нет — вывести Inf.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment