開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
- SymPy (パッケージ)
さむいけど、n度寝して起きましょう…! pic.twitter.com/9sW7Ejfpbx
— みぽ (@nekomath271828) 2019年1月13日
目が覚めてからまた寝るまでの時間(一定と仮定)を考慮した場合に、何度寝できるか計算するプログラムのコードを書いてみた。あと、何度寝したいかによって何秒で寝付けばいいかもわかるグラフを描いてみた。
コード
Python 3
#!/usr/bin/env python3 import itertools from sympy import symbols, pprint, solve, pi, summation, oo, Rational, plot k, n = symbols('k, n', integer=True) p = 2 f = 1 / (k - 1) ** p result = summation(f, (k, 2, oo)) pprint(result) print('寝付くまでの時間を考慮する場合。') while True: try: sec = int(input('目覚めてから寝るまでかかる秒数: ')) if not sec > 0: raise Exception('正の整数を入力してください。') break except ValueError as err: print(f'{err}: 正の整数を入力してください。') except Exception as err: print(err) hour = Rational(sec, 60 ** 2) f = hour + 1 / k ** 2 result = summation(f, (k, 1, n)) pprint(result) for m in itertools.count(0): if result.subs({n: m}) > pi ** 2 / 6: break print(f'π^2/6時間後に起きているためには、{m - 1}度寝可能。') print('n度寝するには何秒で寝付けばいいか?') sec = symbols('sec') hour = sec / 60 ** 2 f = hour + 1 / (k - 1) ** 2 result = summation(f, (k, 2, n)) - pi ** 2 / 6 p = plot(solve(result, sec)[0], (n, 2, 10), legend=True, show=False) p.save('sample89.png')
入出力結果(Terminal, cmd(コマンドプロンプト), Jupyter(IPython))
$ ./sample89.py 2 π ── 6 寝付くまでの時間を考慮する場合。 目覚めてから寝るまでかかる秒数: 5 n ─── + harmonic(n, 2) 720 π^2/6時間後に起きているためには、26度寝可能。 n度寝するには何秒で寝付けばいいか? iMac:blog kamimura$ ./sample89.py 2 π ── 6 寝付くまでの時間を考慮する場合。 目覚めてから寝るまでかかる秒数: 10 n ─── + harmonic(n, 2) 360 π^2/6時間後に起きているためには、18度寝可能。 n度寝するには何秒で寝付けばいいか? iMac:blog kamimura$ ./sample89.py 2 π ── 6 寝付くまでの時間を考慮する場合。 目覚めてから寝るまでかかる秒数: 300 n ── + harmonic(n, 2) 12 π^2/6時間後に起きているためには、3度寝可能。 n度寝するには何秒で寝付けばいいか? iMac:blog kamimura$ ./sample89.py 2 π ── 6 寝付くまでの時間を考慮する場合。 目覚めてから寝るまでかかる秒数: 600 n ─ + harmonic(n, 2) 6 π^2/6時間後に起きているためには、2度寝可能。 n度寝するには何秒で寝付けばいいか? $
0 コメント:
コメントを投稿