lecture:kiso2:ex:ex12-4.c

文書の過去の版を表示しています。


ex12-4.c

テント写像 $f(x)$ は、以下のように定義される区分線形写像である。 $$f(x) = \begin{cases} 2x, & x<\frac{1}{2},\\ 2(1-x), & \frac{1}{2}\le x, \end{cases}$$ 1つの実数を引数としてもち、テント写像 $f(x)$ にしたがって実数値を返す関数 tent() を定義しなさい。

定義された関数 tent() を用いて、初期値 $x_0$ の値を実数として $0\le x\le 1$ の範囲で与えると、$x_1=f(x_0), x_2=f(x_1), x_3=f(x_2),\cdots$ によって決まる $x_i\, (i=0, 1, 2,\cdots, 19)$ の値を小数点以下20桁まで出力するプログラム ex12-4.c を作成し、kiso2コマンドを用いて提出しなさい。 ただし、入力された $x_0$ の値が $0\le x\le 1$ の範囲にない場合は再び $x_0$ の入力を行うものとする。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex12$ ./ex12-4
x0? -0.1
x0? 1.01
x0? 0.12
x0: 0.11999999999999999556
x1: 0.23999999999999999112
x2: 0.47999999999999998224
x3: 0.95999999999999996447
x4: 0.08000000000000007105
x5: 0.16000000000000014211
x6: 0.32000000000000028422
x7: 0.64000000000000056843
x8: 0.71999999999999886313
x9: 0.56000000000000227374
x10: 0.87999999999999545253
x11: 0.24000000000000909495
x12: 0.48000000000001818989
x13: 0.96000000000003637979
x14: 0.07999999999992724042
x15: 0.15999999999985448085
x16: 0.31999999999970896170
x17: 0.63999999999941792339
x18: 0.72000000000116415322
x19: 0.55999999999767169356
t180900@s01cd0542-160:~/kiso2-2018/ex12$ ./ex12-4
x0? 0.12000001
x0: 0.12000001000000000417
x1: 0.24000002000000000835
x2: 0.48000004000000001669
x3: 0.96000008000000003339
x4: 0.07999983999999993323
x5: 0.15999967999999986645
x6: 0.31999935999999973291
x7: 0.63999871999999946581
x8: 0.72000256000000106837
x9: 0.55999487999999786325
x10: 0.88001024000000427350
x11: 0.23997951999999145301
x12: 0.47995903999998290601
x13: 0.95991807999996581202
x14: 0.08016384000006837596
x15: 0.16032768000013675191
x16: 0.32065536000027350383
x17: 0.64131072000054700766
x18: 0.71737855999890598468
x19: 0.56524288000218803063
  • lecture/kiso2/ex/ex12-4.c.1569212674.txt.gz
  • 最終更新: 2019/09/23 13:24
  • by sano