연습문제

아래 문제들을 해결하는 코드를 lab06.py 파일에 작성하여 제출하라.

연습 1

아래 코드를 실행하고 23.5입력하면 ValueError 오류가 발생한다.

======

n = int(raw_input("Please enter a number: "))

======

위 코드를 아래 조건들이 만족되도록 수정해라.

  • 정수가 입력되지 않으면 제대로된 정수를 입력하라는 메시지를 보여주고 동일한 입력창이 다시 보이도록 한다.
  • 정수가 입력되면 "정확히 입력되었다" 라는 확인 메시지를 보여주고 실행을 멈춘다.

견본 답안 1: while 문 활용


In [1]:
while True:
    try:
        n = int(raw_input("Please enter a number: "))
        print("정확히 입력되었습니다.")
        break
    except ValueError:
        print("정수를 입력하시오.")


Please enter a number: 76a
정수를 입력하시오.
Please enter a number: 234
정확히 입력되었습니다.

견본 단안 2: 재귀함수 활용

  • 재귀함수에 대해서는 이후에 배울 예정임

In [2]:
# 아래 `inpint()` 함수는 재귀함수이다.

def inpint():
    try:
        n = int(raw_input("Please enter a number: "))
        print("정확히 입력되었습니다.")
    except ValueError as e:
        print("정수를 입력하시오.")
        inpint()
        
inpint()


Please enter a number: 87a
정수를 입력하시오.
Please enter a number: 765
정확히 입력되었습니다.

연습 2

아래 코드를 실행하면 왜 어떤 결과가 나오는지 설명하라.

try:
    x = float(raw_input("Your number: "))
    inverse = 1.0 / x
finally:
    print("There may or may not have been an exception.")
print("The inverse: ", inverse)

견본답안

  • 0이 아닌 숫자를 입력하면 입력한 숫자의 역원를 보여준다.
  • 숫자 0을 입력하면 ZeroDivisionError가 발생한다.
  • 숫자가 아닌 문자열을 입력하면 IOError 오류가 발생한다.
  • 어떤 경우든 "There may or may not have been an exception." 라는 문장이 보여진다.

연습 3

아래 코드를 실행하면 왜 어떤 결과가 나오는지 설명하라.

try:
    x = float(raw_input("Your number: "))
    inverse = 1.0 / x
except ValueError:
    print "You should have given either an int or a float"
except ZeroDivisionError:
    print "Infinity"
finally:
    print("There may or may not have been an exception.")

견본답안

  • 숫자 0을 입력하면 Infinity 문자열이 보여지며 예외처리가 발생한다.
  • 숫자가 아닌 문자열을 입력하면 "You should have given either an int or a float" 문장이 보여지며 예외처리 발생한다.
  • 어떤 경우든 "There may or may not have been an exception." 라는 문장이 보여진다.

연습 4

아래 코드를 exception_test.py에 저장하라.

=========

import sys
file_name = sys.argv[1]
text = []
try:
    fh = open(file_name, 'r')
except IOError:
    print 'cannot open', file_name
else:
    text = fh.readlines()
    fh.close()

if text:
    print text[100]

==========

이제 터미널에서 아래 명령을 실행하면 왜 어떤 일이 발생할 수 있는지 설명하라.

python exception_test.py integers.txt

(주의: 위 명령은 exception_test.py 파일이 저장되어 있는 디렉토리에서 실행해야 한다.)

견본답안

  • integers.txt 파일이 해당 폴더에 존재하지 않으면 아래 문장이 보여지면 예외처리 된다.

      'cannot open', integers.txt
  • integers.txt 파일이 존재할 경우:

    • 파일에 한 줄도 없으면, 즉 비어 있으면:

      • 아무 결과도 보여지지 않는다.
    • 파일에 한 줄이 있지만 첫째줄에 100개 이하의 문자가 있다면:

      • IndexError 오류 발생
    • 파일에 한 줄 이상 있고 첫째줄에 100개 이상의 문자가 있다면:

      • 첫째줄의 백번째 문자를 보여줌.

연습 5

아래 코드를 실행하면 AssertionError가 발생한다. 아래 코드를 raise 함수를 이용하여 동일한 결과가 나오도록 수정하라.

x = 5
y = 3
assert x < y, "x has to be smaller than y"

견본답안


In [3]:
x=5
y=3
if(not(x<y)):
    raise AssertionError ('x has to be smaller than y')


---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-3-88b248158f56> in <module>()
      2 y=3
      3 if(not(x<y)):
----> 4     raise AssertionError ('x has to be smaller than y')

AssertionError: x has to be smaller than y

연습 6

함수 f가 아래와 같이 정의되었다.

f(x) = sin(x) - 0.5 * x + 30

f(x) = x를 만족시키는 x를 함수 f의 고정점(fixed-point)이라 한다.

함수 f의 부동점을 구하기 위해서 f(x) 반복적으로 업데이트 하는 고정점반복 기술을 아래와 같이 적용한다:

x = sin(x) - a*x + 30

위 아래 코드가 고정점반복 기술을 적용하고 있다.

x = 0.5
a = 0.5
for i in range(200):
    x = sin(x) - a * x + 30   #(*)
print("The result after %s iteration is %s" % (i, x))

위 코드를 다음 조건이 만족되도록 수정하라.

  • 아래의 절대값 조건이 만족될 때까지 고정점 계산 (*)이 반복되어야 한다.

      abs(f(x) - x) < 1e-8  
  • 고정점 반복 계산이 200번 실행되었어도 앞서 언급된 절대값 조건이 만족되지 않으면 그 조건이 만족되지 않았다는 메시지를 보여주면서 에러가 발생하도록 해야 한다.


In [4]:
from math import sin

x = 0.5
a = 0.5
for i in range(200):
    y = sin(x) - a * x + 30
    if(abs(y - x) < 1e-8):
        print("The result after %s iteration is %s" % (i, x))
        break
    else:
        x = y
    
if(i == 199):
    raise ReferenceError("unsatisfied")


The result after 59 iteration is 20.6492743683

참고: 그래프 그리기

아래 등식

x = sin(x) - 0.5 * x + 30 

를 만족시키는 x가 과연 존재하는지, 존재한다면 얼마정도인지를 먼저 확인할 필요가 있다. 그러기 위해서는 아래 함수의 그래프를 그려보아야 한다.

g(x) = sin(x) - 1.5 * x + 30  

그래프를 그리는 방법은 나중에 배울 예정이지만, 아래와 같이 실행하면 된다.


In [5]:
%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np

plt.axhline(y=0, color = 'r') # draw y =0 axes

x = np.arange(0, 10 * np.pi, 0.01) 
y = np.sin(x) - 1.5 * x +30
plt.plot(x, y) 
plt.show()


따라서 f(x) = sin(x) - 0.5 * x + 30의 고정점은 x = 20 근처에 존재함을 알 수 있다.

연습 7

다음과 같이 수열이 정의되어 있다.

x(n) = (sin(1/n))**2 / n

x(n) 값은 n이 증가함에 따라 0으로 수렴한다. x(n) >= 1e-9 조건을 만족하는 모든 x(n)들의 리스트를 구하는 코드를 작성하라.


In [6]:
n = 1
l = []

def x(n):
    return ((sin(1.0/n))**2) / n

while(x(n) >= 1e-9):
    l.append(x(n))
    n = n + 1

print("구해지는 리스트의 길이는 {}이다.\n".format(len(l)))
print(l)


구해지는 리스트의 길이는 999이다.

[0.7080734182735712, 0.11492442353296507, 0.03568545653717533, 0.015302179763703412, 0.007893900599711491, 0.004586921140438527, 0.00289567277772019, 0.0019429736430847011, 0.0013661063672529153, 0.0009966711079379186, 0.0007492473425149478, 0.0005773653515447893, 0.0004542690800538189, 0.00036381212690660413, 0.00029585759886068815, 0.0002438228990834671, 0.00020330696712110295, 0.00017129142947522438, 0.00014565927685327378, 0.00012489586804935584, 0.00010789810717986602, 9.384968862357277e-05, 8.213775286234534e-05, 7.229611040501128e-05, 6.39658739476123e-05, 5.686771737599582e-05, 5.0782037100596544e-05, 4.553457098365615e-05, 4.0985842358676154e-05, 3.7023321647961474e-05, 3.355554319132099e-05, 3.050764531095079e-05, 2.781795771096899e-05, 2.5435367459342786e-05, 2.331726928914343e-05, 2.1427958350770015e-05, 1.973736080751594e-05, 1.8220024439701387e-05, 1.6854310847202272e-05, 1.562174506292192e-05, 1.4506488893976699e-05, 1.3494912128924682e-05, 1.257524161862428e-05, 1.1737272675019899e-05, 1.0972130609432933e-05, 1.0272072819873938e-05, 9.630323832538146e-06, 9.040937250852358e-06, 8.498679773451308e-06, 7.998933390220597e-06, 7.53761261303638e-06, 7.111094190349848e-06, 6.716157226707423e-06, 6.349932005944494e-06, 6.009856120326998e-06, 5.693636752927581e-06, 5.3992181591085695e-06, 5.124753554576237e-06, 4.868580749462157e-06, 4.6292009760958086e-06, 4.405260447157296e-06, 4.195534254391269e-06, 3.998912278932841e-06, 3.8143868348721154e-06, 3.6410418098361214e-06, 3.47804310160302e-06, 3.3246301793032677e-06, 3.180108622595751e-06, 3.0438435131402434e-06, 2.9152535703795023e-06, 2.7938059386348685e-06, 2.679011545252142e-06, 2.5704209603757106e-06, 2.467620698180839e-06, 2.3702299073075843e-06, 2.2778974050233472e-06, 2.1902990154684464e-06, 2.107135177355425e-06, 2.0281287908197197e-06, 1.9530232768588363e-06, 1.8815808260353137e-06, 1.8135808159279113e-06, 1.7488183792568472e-06, 1.6871031067345764e-06, 1.6282578705473773e-06, 1.5721177559925637e-06, 1.5185290902133104e-06, 1.4673485582151215e-06, 1.418442397438305e-06, 1.3716856631193733e-06, 1.3269615575182746e-06, 1.2841608168325634e-06, 1.2431811502767503e-06, 1.203926726386144e-06, 1.1663077021190146e-06, 1.1302397907870735e-06, 1.0956438652492817e-06, 1.0624455931639797e-06, 1.0305751014147723e-06, 9.99966667111108e-07, 9.705584328192626e-07, 9.422921439069633e-07, 9.151129060883849e-07, 8.889689614384287e-07, 8.638114813084503e-07, 8.395943747221188e-07, 8.16274110961645e-07, 7.938095551729293e-07, 7.721618159246458e-07, 7.512941037522112e-07, 7.311715998040843e-07, 7.117613337859298e-07, 6.930320704687436e-07, 6.749542040908199e-07, 6.574996600412272e-07, 6.406418032647601e-07, 6.243553528758045e-07, 6.086163025116043e-07, 5.934018459945522e-07, 5.786903079086723e-07, 5.64461078727832e-07, 5.506945541626842e-07, 5.373720784201789e-07, 5.244758910939907e-07, 5.119890774265398e-07, 4.99895521703715e-07, 4.881798635620604e-07, 4.76827457005255e-07, 4.658243319423484e-07, 4.551571580745262e-07, 4.4481321097029315e-07, 4.34780340181013e-07, 4.250469392597759e-07, 4.15601917556728e-07, 4.064346736733118e-07, 3.9753507046645496e-07, 3.888934115016351e-07, 3.8050041886101834e-07, 3.7234721221957224e-07, 3.6442528910822556e-07, 3.5672650628885054e-07, 3.4924306217109797e-07, 3.419674802059784e-07, 3.348925931955705e-07, 3.280115284623877e-07, 3.213176938257772e-07, 3.1480476433628146e-07, 3.084666697221816e-07, 3.0229758250549763e-07, 2.9629190674754866e-07, 2.904442673867977e-07, 2.8474950013414804e-07, 2.7920264189311187e-07, 2.737989216743803e-07, 2.6853375197627444e-07, 2.634027206043707e-07, 2.584015829052903e-07, 2.535262543912081e-07, 2.487728037331076e-07, 2.441374461021688e-07, 2.396165368399513e-07, 2.352065654392192e-07, 2.3090414981836157e-07, 2.2670603087339618e-07, 2.2260906729250749e-07, 2.1861023061897246e-07, 2.147066005491669e-07, 2.1089536045313623e-07, 2.071737931059483e-07, 2.0353927661873367e-07, 1.9998928055896828e-07, 1.965213622501516e-07, 1.931331632416039e-07, 1.8982240593963242e-07, 1.8658689039181738e-07, 1.834244912166303e-07, 1.8033315467103944e-07, 1.7731089584916216e-07, 1.7435579600541506e-07, 1.714659999959695e-07, 1.686397138326645e-07, 1.6587520234384534e-07, 1.631707869368987e-07, 1.6052484345753793e-07, 1.5793580014115556e-07, 1.554021356518141e-07, 1.5292237720467917e-07, 1.5049509876792162e-07, 1.481189193403247e-07, 1.457925013010296e-07, 1.4351454882803739e-07, 1.4128380638226183e-07, 1.390990572540926e-07, 1.3695912216958242e-07, 1.3486285795352258e-07, 1.3280915624680612e-07, 1.3079694227561264e-07, 1.2882517367007e-07, 1.268928393301678e-07, 1.2499895833680553e-07, 1.2314257890596644e-07, 1.213227773841029e-07, 1.195386572829177e-07, 1.1778934835180974e-07, 1.1607400568634008e-07, 1.1439180887115109e-07, 1.1274196115584974e-07, 1.1112368866243344e-07, 1.0953623962290834e-07, 1.0797888364581211e-07, 1.0645091101041283e-07, 1.0495163198741686e-07, 1.0348037618506881e-07, 1.0203649191958183e-07, 1.0061934560888456e-07, 9.922832118871696e-08, 9.786281955015343e-08, 9.652225799767174e-08, 9.520606972692784e-08, 9.391370332143416e-08, 9.264462226737455e-08, 9.139830448582448e-08, 9.01742418816769e-08, 8.897193990860567e-08, 8.779091714942785e-08, 8.66307049112545e-08, 8.54908468348461e-08, 8.437089851761427e-08, 8.327042714973638e-08, 8.218901116287125e-08, 8.112623989098799e-08, 8.00817132428397e-08, 7.905504138563411e-08, 7.804584443947279e-08, 7.705375218214742e-08, 7.607840376390108e-08, 7.511944743177644e-08, 7.417654026319089e-08, 7.32493479083918e-08, 7.233754434146115e-08, 7.144081161955063e-08, 7.055883965004338e-08, 6.969132596534894e-08, 6.883797550505218e-08, 6.799850040514621e-08, 6.717261979409149e-08, 6.636005959545377e-08, 6.556055233688245e-08, 6.477383696520178e-08, 6.399965866739486e-08, 6.3237768697271e-08, 6.248792420761366e-08, 6.174988808761472e-08, 6.102342880540883e-08, 6.030832025552834e-08, 5.9604341611106824e-08, 5.891127718066483e-08, 5.822891626931955e-08, 5.7557053044264576e-08, 5.689548640437281e-08, 5.6244019853780935e-08, 5.5602461379319044e-08, 5.497062333165435e-08, 5.4348322310023033e-08, 5.37353790504286e-08, 5.313161831719008e-08, 5.25368687977275e-08, 5.195096300047619e-08, 5.137373715582599e-08, 5.08050311199845e-08, 5.0244688281667814e-08, 4.969255547152572e-08, 4.9148482874211044e-08, 4.8612323943007106e-08, 4.808393531692971e-08, 4.756317674022303e-08, 4.70499109841723e-08, 4.654400377115833e-08, 4.604532370088172e-08, 4.555374217868761e-08, 4.5069133345923475e-08, 4.4591374012265764e-08, 4.412034358995264e-08, 4.365592402986287e-08, 4.319799975938262e-08, 4.274645762200412e-08, 4.230118681860221e-08, 4.186207885033627e-08, 4.142902746312733e-08, 4.100192859366149e-08, 4.0580680316872744e-08, 4.016518279485955e-08, 3.975533822719157e-08, 3.9351050802563766e-08, 3.895222665175738e-08, 3.855877380186768e-08, 3.817060213176063e-08, 3.77876233287213e-08, 3.7409750846258146e-08, 3.7036899863029006e-08, 3.666898724285488e-08, 3.630593149578957e-08, 3.594765274021374e-08, 3.559407266592322e-08, 3.524511449818227e-08, 3.4900702962713574e-08, 3.4560764251597537e-08, 3.422522599005452e-08, 3.3894017204084126e-08, 3.356706828893708e-08, 3.324431097839538e-08, 3.292567831483759e-08, 3.2611104620066955e-08, 3.230052546688015e-08, 3.199387765135596e-08, 3.169109916584318e-08, 3.1392129172628146e-08, 3.109690797826255e-08, 3.080537700853303e-08, 3.051747878405473e-08, 3.023315689647094e-08, 2.995235598524247e-08, 2.9675021715009974e-08, 2.940110075351347e-08, 2.913054075005388e-08, 2.886329031448126e-08, 2.8599298996695674e-08, 2.833851726664648e-08, 2.808089649481641e-08, 2.782638893317739e-08, 2.7574947696605223e-08, 2.7326526744740787e-08, 2.708108086428561e-08, 2.6838565651720345e-08, 2.659893749643459e-08, 2.636215356425726e-08, 2.6128171781376716e-08, 2.589695081864039e-08, 2.56684500762238e-08, 2.544262966865922e-08, 2.5219450410214602e-08, 2.4998873800613454e-08, 2.4780862011086815e-08, 2.4565377870748688e-08, 2.4352384853286484e-08, 2.414184706395825e-08, 2.3933729226888893e-08, 2.3727996672657535e-08, 2.3524615326168625e-08, 2.3323551694799448e-08, 2.312477285681705e-08, 2.292824645005761e-08, 2.2733940660861707e-08, 2.2541824213258886e-08, 2.2351866358395245e-08, 2.2164036864197988e-08, 2.1978306005270922e-08, 2.1794644553015046e-08, 2.161302376596881e-08, 2.1433415380362336e-08, 2.1255791600880396e-08, 2.1080125091629004e-08, 2.09063889673005e-08, 2.073455678453226e-08, 2.0564602533454367e-08, 2.0396500629421418e-08, 2.0230225904924137e-08, 2.006575360167632e-08, 1.9903059362872897e-08, 1.9742119225614906e-08, 1.9582909613497356e-08, 1.9425407329356126e-08, 1.9269589548169923e-08, 1.911543381011374e-08, 1.8962918013760036e-08, 1.8812020409424267e-08, 1.8662719592651178e-08, 1.8514994497838627e-08, 1.8368824391995622e-08, 1.8224188868631472e-08, 1.8081067841772796e-08, 1.7939441540105646e-08, 1.779929050123956e-08, 1.7660595566090854e-08, 1.75233378733823e-08, 1.7387498854256506e-08, 1.7253060227000378e-08, 1.7120003991878038e-08, 1.6988312426069785e-08, 1.6857968078714548e-08, 1.672895376605354e-08, 1.660125256667279e-08, 1.6474847816842223e-08, 1.634972310594916e-08, 1.6225862272024116e-08, 1.6103249397356654e-08, 1.598186880419944e-08, 1.5861705050558442e-08, 1.5742742926067257e-08, 1.562496744794379e-08, 1.5508363857027406e-08, 1.5392917613894697e-08, 1.5278614395052213e-08, 1.5165440089204393e-08, 1.5053380793594996e-08, 1.4942422810420485e-08, 1.4832552643313709e-08, 1.4723756993896385e-08, 1.4616022758398821e-08, 1.4509337024345468e-08, 1.4403687067304795e-08, 1.4299060347702138e-08, 1.4195444507694158e-08, 1.4092827368103474e-08, 1.3991196925412359e-08, 1.3890541348813985e-08, 1.379084897732022e-08, 1.369210831692455e-08, 1.359430803781911e-08, 1.349743697166453e-08, 1.3401484108911616e-08, 1.3306438596173627e-08, 1.3212289733648138e-08, 1.3119026972587443e-08, 1.3026639912816473e-08, 1.2935118300297199e-08, 1.2844452024738554e-08, 1.2754631117250922e-08, 1.2665645748044334e-08, 1.2577486224169248e-08, 1.2490142987299324e-08, 1.2403606611555033e-08, 1.2317867801367476e-08, 1.2232917389381427e-08, 1.2148746334396892e-08, 1.2065345719348322e-08, 1.1982706749320751e-08, 1.1900820749602096e-08, 1.1819679163770837e-08, 1.173927355181842e-08, 1.165959558830562e-08, 1.1580637060552213e-08, 1.1502389866859252e-08, 1.1424846014763328e-08, 1.1347997619322115e-08, 1.1271836901430595e-08, 1.1196356186167389e-08, 1.1121547901170524e-08, 1.1047404575042063e-08, 1.0973918835781056e-08, 1.0901083409244234e-08, 1.0828891117633855e-08, 1.0757334878012222e-08, 1.0686407700842298e-08, 1.0616102688553958e-08, 1.0546413034135299e-08, 1.0477332019748593e-08, 1.040885301537031e-08, 1.0340969477454868e-08, 1.0273674947621495e-08, 1.0206963051363887e-08, 1.014082749678213e-08, 1.007526207333649e-08, 1.0010260650622648e-08, 9.945817177167965e-09, 9.881925679248356e-09, 9.818580259725389e-09, 9.755775096903242e-09, 9.69350444340507e-09, 9.631762625068521e-09, 9.570544039859912e-09, 9.509843156806796e-09, 9.449654514948556e-09, 9.389972722304639e-09, 9.330792454860181e-09, 9.27210845556858e-09, 9.213915533370833e-09, 9.156208562231176e-09, 9.098982480188876e-09, 9.042232288425729e-09, 8.985953050349048e-09, 8.930139890689895e-09, 8.87478799461612e-09, 8.819892606860131e-09, 8.76544903086094e-09, 8.711452627920368e-09, 8.657898816373008e-09, 8.604783070769873e-09, 8.552100921075247e-09, 8.499847951876728e-09, 8.448019801608048e-09, 8.396612161784568e-09, 8.345620776251043e-09, 8.295041440441695e-09, 8.244870000652085e-09, 8.195102353322788e-09, 8.145734444334552e-09, 8.096762268314718e-09, 8.048181867954828e-09, 7.999989333339022e-09, 7.952180801283219e-09, 7.90475245468478e-09, 7.857700521882471e-09, 7.811021276026608e-09, 7.764711034459126e-09, 7.718766158103447e-09, 7.673183050863957e-09, 7.627958159034903e-09, 7.583087970718595e-09, 7.538569015252672e-09, 7.49439786264636e-09, 7.4505711230255035e-09, 7.4070854460862194e-09, 7.363937520557068e-09, 7.321124073669535e-09, 7.278641870636724e-09, 7.236487714140096e-09, 7.1946584438241144e-09, 7.153150935798675e-09, 7.111962102149171e-09, 7.071088890454053e-09, 7.0305282833098035e-09, 6.990277297863122e-09, 6.95033298535027e-09, 6.910692430643409e-09, 6.8713527518038194e-09, 6.832311099641905e-09, 6.793564657283836e-09, 6.755110639744748e-09, 6.716946293508354e-09, 6.67906889611289e-09, 6.641475755743274e-09, 6.604164210829369e-09, 6.567131629650263e-09, 6.530375409944445e-09, 6.493892978525788e-09, 6.457681790905264e-09, 6.421739330918235e-09, 6.386063110357306e-09, 6.350650668610576e-09, 6.315499572305243e-09, 6.280607414956467e-09, 6.245971816621373e-09, 6.2115904235581566e-09, 6.1774609078901725e-09, 6.143580967274937e-09, 6.109948324577966e-09, 6.07656072755136e-09, 6.043415948517072e-09, 6.010511784054763e-09, 5.977846054694195e-09, 5.945416604612067e-09, 5.913221301333219e-09, 5.881258035436166e-09, 5.849524720262843e-09, 5.8180192916325444e-09, 5.786739707559938e-09, 5.755683947977137e-09, 5.7248500144597335e-09, 5.694235929956733e-09, 5.663839738524347e-09, 5.633659505063549e-09, 5.603693315061376e-09, 5.573939274335874e-09, 5.544395508784665e-09, 5.5150601641370355e-09, 5.4859314057095496e-09, 5.457007418165077e-09, 5.428286405275205e-09, 5.399766589685985e-09, 5.371446212686951e-09, 5.34332353398337e-09, 5.315396831471652e-09, 5.287664401017902e-09, 5.260124556239535e-09, 5.23277562828992e-09, 5.2056159656460225e-09, 5.178643933898947e-09, 5.1518579155473995e-09, 5.1252563097939866e-09, 5.0988375323442965e-09, 5.072600015208765e-09, 5.046542206507232e-09, 5.0206625702761886e-09, 4.99495958627864e-09, 4.969431749816569e-09, 4.9440775715459525e-09, 4.9188955772942875e-09, 4.893884307880581e-09, 4.869042318937803e-09, 4.844368180737706e-09, 4.819860478018036e-09, 4.79551780981205e-09, 4.771338789280342e-09, 4.7473220435449145e-09, 4.723466213525473e-09, 4.6997699537779284e-09, 4.6762319323350306e-09, 4.652850830549145e-09, 4.629625342937116e-09, 4.6065541770271914e-09, 4.58363605320798e-09, 4.560869704579406e-09, 4.5382538768056394e-09, 4.515787327969963e-09, 4.493468828431559e-09, 4.471297160684164e-09, 4.449271119216606e-09, 4.42738951037515e-09, 4.40565115222765e-09, 4.384054874429483e-09, 4.362599518091225e-09, 4.34128393564806e-09, 4.320106990730881e-09, 4.2990675580390625e-09, 4.278164523214894e-09, 4.2573967827196225e-09, 4.236763243711116e-09, 4.216262823923088e-09, 4.195894451545889e-09, 4.1756570651088314e-09, 4.1555496133640115e-09, 4.135571055171644e-09, 4.115720359386842e-09, 4.09599650474786e-09, 4.076398479765748e-09, 4.056925282615431e-09, 4.037575921028151e-09, 4.0183494121852966e-09, 3.999244782613558e-09, 3.98026106808143e-09, 3.961397313497e-09, 3.942652572807051e-09, 3.924025908897416e-09, 3.905516393494589e-09, 3.887123107068585e-09, 3.868845138737001e-09, 3.850681586170286e-09, 3.8326315554981995e-09, 3.81469416121743e-09, 3.796868526100359e-09, 3.779153781104987e-09, 3.761549065285939e-09, 3.74405352570661e-09, 3.726666317352375e-09, 3.709386603044882e-09, 3.6922135533573995e-09, 3.675146346531217e-09, 3.658184168393057e-09, 3.6413262122735143e-09, 3.6245716789264987e-09, 3.607919776449651e-09, 3.5913697202057473e-09, 3.574920732745052e-09, 3.558572043728627e-09, 3.5423228898525655e-09, 3.5261725147731538e-09, 3.510120169032941e-09, 3.494165109987699e-09, 3.4783066017342726e-09, 3.4625439150393023e-09, 3.4468763272688e-09, 3.4313031223185833e-09, 3.4158235905455305e-09, 3.4004370286996854e-09, 3.385142739857153e-09, 3.369940033353812e-09, 3.354828224719818e-09, 3.3398066356148833e-09, 3.3248745937643363e-09, 3.31003143289594e-09, 3.2952764926774506e-09, 3.280609118654939e-09, 3.2660286621918214e-09, 3.251534480408623e-09, 3.2371259361234533e-09, 3.2228023977931814e-09, 3.2085632394553006e-09, 3.194407840670487e-09, 3.180335586465824e-09, 3.166345867278693e-09, 3.1524380789013297e-09, 3.1386116224260185e-09, 3.1248659041909343e-09, 3.111200335726612e-09, 3.09761433370304e-09, 3.0841073198773718e-09, 3.070678721042238e-09, 3.057327968974668e-09, 3.0440545003855934e-09, 3.0308577568699353e-09, 3.017737184857281e-09, 3.004692235563109e-09, 2.9917223649405912e-09, 2.9788270336329458e-09, 2.96600570692633e-09, 2.9532578547032823e-09, 2.940582951396688e-09, 2.927980475944282e-09, 2.9154499117436625e-09, 2.9029907466078154e-09, 2.8906024727211545e-09, 2.8782845865960543e-09, 2.8660365890298748e-09, 2.8538579850624798e-09, 2.84174828393423e-09, 2.829706999044453e-09, 2.817733647910381e-09, 2.8058277521265553e-09, 2.7939888373246787e-09, 2.782216433133927e-09, 2.770510073141707e-09, 2.7588692948548454e-09, 2.747293639661218e-09, 2.7357826527918056e-09, 2.7243358832831803e-09, 2.7129528839403954e-09, 2.701633211300304e-09, 2.6903764255952703e-09, 2.6791820907172986e-09, 2.6680497741825462e-09, 2.656979047096238e-09, 2.645969484117965e-09, 2.635020663427367e-09, 2.6241321666901895e-09, 2.6133035790247246e-09, 2.602534488968604e-09, 2.5918244884459756e-09, 2.5811731727350197e-09, 2.570580140435845e-09, 2.5600449934387067e-09, 2.549567336892597e-09, 2.539146779174162e-09, 2.5287829318569647e-09, 2.5184754096810787e-09, 2.5082238305230136e-09, 2.4980278153659627e-09, 2.4878869882703825e-09, 2.477800976344875e-09, 2.467769409717399e-09, 2.457791921506784e-09, 2.447868147794554e-09, 2.4379977275970466e-09, 2.428180302837846e-09, 2.4184155183204974e-09, 2.408703021701525e-09, 2.399042463463725e-09, 2.389433496889759e-09, 2.3798757780360214e-09, 2.37036896570678e-09, 2.3609127214286046e-09, 2.3515067094250544e-09, 2.3421505965916457e-09, 2.3328440524710722e-09, 2.3235867492287004e-09, 2.3143783616283122e-09, 2.3052185670081126e-09, 2.2961070452569866e-09, 2.2870434787910046e-09, 2.278027552530177e-09, 2.2690589538754534e-09, 2.260137372685958e-09, 2.2512625012564744e-09, 2.2424340342951503e-09, 2.2336516689014473e-09, 2.224915104544318e-09, 2.2162240430406057e-09, 2.2075781885336767e-09, 2.198977247472266e-09, 2.1904209285895476e-09, 2.181908942882422e-09, 2.173441003591018e-09, 2.1650168261784e-09, 2.1566361283104944e-09, 2.14829862983622e-09, 2.140004052767815e-09, 2.131752121261379e-09, 2.123542561597605e-09, 2.115375102162715e-09, 2.1072494734295856e-09, 2.0991654079390724e-09, 2.09112264028152e-09, 2.0831209070784645e-09, 2.0751599469645214e-09, 2.0672395005694583e-09, 2.0593593105004424e-09, 2.051519121324485e-09, 2.043718679551046e-09, 2.0359577336148253e-09, 2.028236033858728e-09, 2.0205533325169912e-09, 2.0129093836984974e-09, 2.0053039433702422e-09, 1.997736769340976e-09, 1.9902076212450065e-09, 1.982716260526166e-09, 1.9752624504219353e-09, 1.9678459559477362e-09, 1.9604665438813683e-09, 1.9531239827476073e-09, 1.9458180428029654e-09, 1.9385484960205834e-09, 1.9313151160752953e-09, 1.924117678328824e-09, 1.916955959815136e-09, 1.909829739225931e-09, 1.902738796896285e-09, 1.8956829147904297e-09, 1.888661876487671e-09, 1.8816754671684515e-09, 1.8747234736005467e-09, 1.867805684125397e-09, 1.8609218886445766e-09, 1.8540718786063943e-09, 1.8472554469926214e-09, 1.840472388305356e-09, 1.8337224985540121e-09, 1.8270055752424395e-09, 1.8203214173561588e-09, 1.8136698253497365e-09, 1.807050601134272e-09, 1.8004635480650073e-09, 1.793908470929061e-09, 1.7873851759332796e-09, 1.7808934706922031e-09, 1.7744331642161527e-09, 1.768004066899428e-09, 1.7616059905086255e-09, 1.7552387481710593e-09, 1.7489021543633034e-09, 1.7425960248998364e-09, 1.736320176921802e-09, 1.730074428885871e-09, 1.7238586005532151e-09, 1.7176725129785839e-09, 1.7115159884994834e-09, 1.7053888507254654e-09, 1.6992909245275123e-09, 1.6932220360275233e-09, 1.6871820125879067e-09, 1.6811706828012637e-09, 1.675187876480175e-09, 1.6692334246470808e-09, 1.6633071595242604e-09, 1.657408914523902e-09, 1.6515385242382715e-09, 1.6456958244299693e-09, 1.6398806520222828e-09, 1.6340928450896255e-09, 1.6283322428480684e-09, 1.622598685645964e-09, 1.6168920149546496e-09, 1.611212073359245e-09, 1.6055587045495345e-09, 1.5999317533109315e-09, 1.594331065515529e-09, 1.588756488113239e-09, 1.5832078691230022e-09, 1.577685057624091e-09, 1.5721879037474883e-09, 1.5667162586673463e-09, 1.561269974592526e-09, 1.5558489047582134e-09, 1.5504529034176128e-09, 1.5450818258337223e-09, 1.5397355282711754e-09, 1.534413867988167e-09, 1.529116703228449e-09, 1.5238438932134012e-09, 1.5185952981341728e-09, 1.513370779143899e-09, 1.508170198349987e-09, 1.5029934188064726e-09, 1.497840304506449e-09, 1.4927107203745606e-09, 1.487604532259568e-09, 1.4825216069269836e-09, 1.4774618120517652e-09, 1.4724250162110874e-09, 1.4674110888771698e-09, 1.4624199004101736e-09, 1.4574513220511644e-09, 1.4525052259151346e-09, 1.4475814849840918e-09, 1.4426799731002098e-09, 1.4378005649590379e-09, 1.4329431361027776e-09, 1.428107562913612e-09, 1.4232937226071018e-09, 1.4185014932256372e-09, 1.4137307536319498e-09, 1.408981383502681e-09, 1.4042532633220113e-09, 1.3995462743753422e-09, 1.3948602987430366e-09, 1.3901952192942177e-09, 1.3855509196806175e-09, 1.3809272843304855e-09, 1.3763241984425475e-09, 1.3717415479800193e-09, 1.3671792196646766e-09, 1.3626371009709711e-09, 1.3581150801202057e-09, 1.3536130460747556e-09, 1.3491308885323429e-09, 1.34466849792036e-09, 1.3402257653902492e-09, 1.3358025828119217e-09, 1.331398842768233e-09, 1.3270144385495062e-09, 1.322649264148098e-09, 1.3183032142530214e-09, 1.3139761842446055e-09, 1.309668070189209e-09, 1.3053787688339785e-09, 1.3011081776016496e-09, 1.2968561945853965e-09, 1.2926227185437247e-09, 1.2884076488954097e-09, 1.284210885714478e-09, 1.2800323297252321e-09, 1.2758718822973194e-09, 1.2717294454408424e-09, 1.267604921801514e-09, 1.2634982146558497e-09, 1.2594092279064058e-09, 1.2553378660770585e-09, 1.2512840343083206e-09, 1.247247638352699e-09, 1.243228584570097e-09, 1.2392267799232484e-09, 1.2352421319731965e-09, 1.2312745488748104e-09, 1.2273239393723383e-09, 1.2233902127950006e-09, 1.2194732790526185e-09, 1.215573048631282e-09, 1.2116894325890554e-09, 1.2078223425517148e-09, 1.2039716907085274e-09, 1.2001373898080632e-09, 1.1963193531540443e-09, 1.1925174946012258e-09, 1.1887317285513174e-09, 1.184961969948934e-09, 1.1812081342775822e-09, 1.1774701375556845e-09, 1.1737478963326294e-09, 1.1700413276848618e-09, 1.1663503492120028e-09, 1.1626748790330014e-09, 1.1590148357823237e-09, 1.1553701386061654e-09, 1.1517407071587043e-09, 1.1481264615983805e-09, 1.1445273225842066e-09, 1.1409432112721105e-09, 1.137374049311309e-09, 1.1338197588407112e-09, 1.1302802624853488e-09, 1.1267554833528427e-09, 1.1232453450298923e-09, 1.1197497715787979e-09, 1.116268687534011e-09, 1.1128020178987115e-09, 1.1093496881414167e-09, 1.1059116241926137e-09, 1.102487752441425e-09, 1.0990779997322957e-09, 1.0956822933617153e-09, 1.0923005610749564e-09, 1.0889327310628529e-09, 1.0855787319585906e-09, 1.0822384928345377e-09, 1.078911943199091e-09, 1.0755990129935526e-09, 1.0722996325890343e-09, 1.0690137327833787e-09, 1.065741244798116e-09, 1.06248210027544e-09, 1.0592362312752064e-09, 1.056003570271963e-09, 1.0527840501519967e-09, 1.0495776042104077e-09, 1.0463841661482083e-09, 1.0432036700694431e-09, 1.0400360504783348e-09, 1.0368812422764498e-09, 1.0337391807598904e-09, 1.030609801616508e-09, 1.027493040923137e-09, 1.0243888351428546e-09, 1.0212971211222593e-09, 1.0182178360887752e-09, 1.0151509176479718e-09, 1.0120963037809122e-09, 1.0090539328415187e-09, 1.0060237435539585e-09, 1.003005675010054e-09]