ぼくのIT日記

  7月7日(土)データの送信 曇り

 6キロバイトのデータの送信を5秒以内に行うため、最低必要な回線容量は何
ビット/秒か?回線の伝送効率は60%、1K=1024とする。

この問題は2回やって2回ともできなかった(正確には)。

1K=1024だから、6×1024×8で49152ビットここまでは出てくる。

回線の伝送効率は60%ということは、実際には5秒間に少なくとも49152÷
0.6=81920ビット送信できなければならない。そして、81920÷5=1
6384ビット/秒、となる。
僕は49152×1.6=78643 78643÷5=15728と求めてしまった。
伝送効率は60%=1.6倍でイコールと思って・・(そんなわけない)。
実は結果的にどちらでも選択する答えが同じだったので×にはならないものの、実
質、不正解である。

こういう計算問題で×か÷かで迷ってしまうのは僕だけだろうか?数学が苦手以前の
問題かもしれない、冷静に考えると、
20×100=2000
B×50=2000
B=2000÷50
B=40
小学生でもできる。ということは、
491.52×100%=49152 
A×60%=49152
A=49152÷0.6
A=81920
簡単な数に置き換えれば、何をどうするとどういう答えが出るかすぐにわかるのに・・。
へたに、数学が苦手とか変なコンプレックスを持っていると余計に悪い結果になるようだ。


  7月8日(日)整列 晴れ

 今日はいろいろな処理のアルゴリズムが存在する中で整列についてまとめてみた。

整列=ソート
複数のデータをあるキー項目の昇順、降順に並べ替えること。

@交換法=バブルソート
お互いに隣り合うデータのキーを比較して大小関係が逆なら入れ替える。

@の応用(1)、シェーカーソート
例えば最大値を左に並べた後は最小値を右に並べていく。@は1方向への移動に対
し、両方に移動させる方法。@と効率はほとんど変わらない。

@の応用(2)、クイックソート
データの中から比較するデータを1つ取り出し、そのデータ値以下と以上のデータに
グループに分割することを繰り返す。

A選択法(セレクションソート)
データ数Nの中の最小のデータを選択し1番目のデータと交換する。後は2〜N-1ま
で同様の作業を繰り返す。

Aの応用、ヒープソート
未整列の部分を部分木で表しそこから最大、最小値を取り出して既整列の部分に移
す。この操作を繰り返して未整列部分を縮めて行く方法。

B挿入法(挿入ソート)
2番目のデータから順に取り出し、それより左側のデータ列の整列を乱さないように
適当な位置(定められた並び方を考慮して、取り出した数より左側は整列済みという
前提)に挿入する。

Bの応用、シェルソート
データ列の中のデータのある間隔ごとに取り出して部分列とし、それぞれのデータ列
についてBで整列し、更に間隔を狭めてデータ列を整列していく。

我ながら今日は失敗!読んでも図がないとおそらく解らないと思う。ホントは検索に
ついても書こうと思ったがやめた。
でも、何かを覚える時はなるべく2行以内でまとめたい。そうでないとやる気もなく
なるし、覚えれなくなる。


  7月9日(月)区別が解りにくい用語 晴れ

 今日は区別が解りにくい用語について書いてみた。

@丸め誤差
数値の特定の桁を四捨五入したり、切り上げ、切捨てすることを丸めるといい、これ
によって生じる誤差こと。

65.76 四捨五入 65.8
65.76 切り上げ 65.8
65.76 切り下げ 65.7
すべて、誤差が生じている。

A打切り誤差
技術計算などでまだ精度の高い結果が得られる可能性があっても、ある程度の結果で
処理を打ち切って結果を求めることによって生じる誤差。

円周率
真の値 3.14159・・・・・・
計算結果 3.14(ここで打ち切り)
誤差 0.00159・・・・・・・

B情報落ち
絶対値の大きい数値に絶対値の小さい数値を加減算したとき、絶対値の小さい値が無
視されてしまう現象のこと。

基数16の浮動小数点で考える。カッコでくくられている部分が16進数!
(0.123456)×16の6乗−(0.654321)×16の0乗
=(0.123456)×16の6乗−(0.000000654321)×16の
6乗
=(0.123456)×16の6乗
指数部の小さい方が大きい方に合わせる調整を行った後、演算するので(0.000
000654321)の654321は無視され、0を引いたことになる。
情報落ちを防ぐには複数の数値の加減算で、絶対値を小さい順に並べて計算する。

Cけた落ち
絶対値のほぼ等しい同符号の2数値を減算した場合、有効桁数が少なくなる現象のこと。

基数16の浮動小数点で考える。カッコでくくられている部分が16進数!
(0.123456)×16の6乗−(0.123455)×16の6乗
=(0.000001)×16の6乗
=(0.100000)×16の1乗  ・・・自動的に正規化
(0.100000)の小数部の5つの0は正規化によって生じたゼロ(0)、つま
り真の値が0というわけではない。小数点第2位以下は信用できない(有効桁数でない)。
けた落ちを防止するには、計算式を変形して絶対値のほぼ等しい同符号の減算をでき
るだけなくすこと。

今日はちゃんと例を書いてみた!


home index

Copyright (C) 2001 Binary Corporation. All Rights Reserved.