{"author_name":"inamori","type":"rich","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Finamori.hateblo.jp%2Fentry%2F20101103%2Fp1\" title=\"Project Euler 151\u304b\u3089\uff083\uff09 - inamori\u2019s diary\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","provider_name":"Hatena Blog","provider_url":"https://hatena.blog","blog_url":"https://inamori.hateblo.jp/","title":"Project Euler 151\u304b\u3089\uff083\uff09","author_url":"https://blog.hatena.ne.jp/inamori/","published":"2010-11-03 00:00:00","width":"100%","categories":["\u6570\u5b66","\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0"],"blog_title":"inamori\u2019s diary","image_url":null,"description":"\u5143\u306e\u30b3\u30fc\u30c9\u306f\u3053\u3046\u3067\u3057\u305f\u304c\u3001 from itertools import izip, count def next(s, k): return s[:k] + (s[k] - 1,) + tuple(n + 1 for n in s[k+1:]) def E(s): num_papers = sum(s) if num_papers == 0: return 0.0 return (1 if num_papers == 1 else 0) \\ + sum(n * E(next(s, k)) / num_papers for k, n in izip(count(), s) if n > 0) N\u2026","height":"190","version":"1.0","url":"https://inamori.hateblo.jp/entry/20101103/p1"}