【確認課題】Python 入門#

問 1. 計算#

提出ファイル:quadratic_formula.py

2 次方程式 \(ax^2+bx+c=0\) の解 \(x\) は、下式で求めることができます:

\(x = \dfrac{-b\pm \sqrt{b^2 - 4ac}}{2a}\)

この解の公式を実装して、次の 2 次方程式の解が得られるかを確認しましょう。

(1) \(x^2-6x+9=0\) の解は \(3\)
(2) \(x^2+2x-8=0\) の解は \(2\)\(-4\)
(3) \(8x^2-6x-35=0\) の解は \(5/2\)\(-7/4\)
(4) \(x^2+1=0\) の解は \(j\)\(-j\)   ( \(j\) は虚数単位)

補足#

  • ルート( \(\sqrt{a}\) )は、2 分の 1 乗( \(a^{1/2}\) )として計算できます。

  • (4) の解には計算誤差が含まれると思います。Python がどこまで正しい精度で計算できるかは『制御構文 問 4. マシンイプシロン』を解くと分かります。(お楽しみに)


問 2. 文字列#

提出ファイル:pi.py

How I want a drink, alcoholic の英単語の文字数を並べると 314159 になり、円周率の数字の並びと同じになります。

この問題で実装するのは、24 単語からなる下の英文:

How I want a drink, alcoholic of course, after the heavy chapters involving
quantum mechanics. All of thy geometry, Herr Planck, is fairly hard.

の文字数を並べた文字列 (str 型) を出力するプログラムです。 実行結果は円周率 24 桁目までの 314159265358979323846264 になるはずです。

補足#

  • 求めるのは「英単語の文字数」なので記号は無視する必要があります。

  • ヒント。下のコードのように list, map, len 関数を用いると、与えられたリストの各要素の文字数を得ることができます。

    >>> list(map(len, ["a", "bc", "def"]))
    [1, 2, 3]
    

    つまり、区切って文字を数えてくっつければ解けそう…?