数列の問題

ある規則でならぶ下記の数列

\frac{1}{1},\frac{1}{2},\frac{2}{2},\frac{1}{3},\frac{2}{3},\frac{3}{3},\frac{1}{4},\frac{2}{4},\frac{3}{4},\frac{4}{4}\cdots

の80番目までの和を求めよ。

分母毎のグループの個数に注目すると、1,2,3,4,\cdotsであるので、分母が4の最後(\frac{4}{4})は数列の10番目(1+2+3+4=10)であることがわかる。同様に、1+2+3+\cdots +12=78 であるから数列の78番目は\frac{12}{12}、79番目は\frac{1}{13}、80番目は\frac{2}{13}である。

したがって、求める数列の和は\frac{1}{1}+\frac{1}{2}+\frac{2}{2}+\cdots +\frac{11}{12}+\frac{12}{12}+\frac{1}{13}+\frac{2}{13} である。この数列を分母毎にグループにまとめると

1+1\frac{1}{2}+2+2\frac{1}{2}+\cdots 6\frac{1}{2}+\frac{1}{13}+\frac{2}{13}

の公差\frac{1}{2}の等差数列となる。したがって80番目までの和は、上記数列の12番目までの和に\frac{3}{13}を加えたものである。

ゆえに、80番目までの数列の和

    \begin{eqnarray*} S_{80}&=&\frac{12(1+6\frac{1}{2})}{2}+\frac{2}{13} \\ &=& 45 + \frac{2}{13} \\ &=& 45\frac{2}{13} \\ \end{eqnarray*}

となる。

誤差について学ぼう

「やさしい応用情報処理技術者講座」にややこしいのが、解りやすくまとめてあったのを写経。

丸め誤差

数値を有効桁数にする際の誤差。例えば0.5 _{10}0.1 _{2}として表現できるが0.1 _{10}0.0001100110011\cdot _{2}となり循環するためこのまま表現することができない。つまり、正確に0.1 _{10}をあらわすことができない

打ち切り誤差

計算を途中で打ち切ることにより生じる誤差。例えば方程式の解を求める際に計算を途中で打ち切って解の近似値を得る場合などを言う

けた落ち

絶対値がほぼ等しい2数を計算するとき有効数字(有効桁数)が減ってしまうことを言う。例えば、1258.2 - 1258.1 = 0.1は有効数字が5桁から1桁にけた落ちしている。

情報落ち

絶対値の大きな数値と絶対値の小さな数値を演算したとき小さな値のけたの情報が落ちてしまうこと。例えば有効桁を4桁として1234\times 10^{1} + 1234\times 10^{-4}を計算するとき2つの指数の桁を揃える必要があるが、このとき小さな数値が有効桁数に収まらなくなってしまい情報落ちが発生する。(1234 \times 10^{1} + 0.01234\times 10^{1}

オーバーフロー

絶対値が大きいため、一定のビット数で表現できる範囲を超えてしまうこと。例えば156383 _{10}は8ビットでは表現することができない。

アンダーフロー

絶対値が小さいため表現できなくなること。例えば0.000000000235 _{10}は8ビット固定小数点では表現することができない。

やさしい応用情報技術者講座 2016年版 (「やさしい講座」シリーズ)
やさしい応用情報技術者講座 2016年版 (「やさしい講座」シリーズ)高橋 麻奈

SBクリエイティブ 2015-11-26
売り上げランキング : 228870

Amazonで詳しく見る by G-Tools

2の補数

2の補数を使って加算演算する場合、

  1. 計算結果もまた2の補数として表現される
  2. 最上位のビットが桁上がりする場合はそれを無視する
  3. 計算結果が表現可能な範囲に収まらない場合もある(オーバーフロー)

2の補数表現について、nビットで表現可能な範囲は、-(2^{n-1})2^{n-1}となる。例えばn=4のとき-3_{10} + -5_{10} = 1101_{2} + 1011_{2} = 1000_{2} = -8_{10}でOKだが、-4_{10} + -5_{10} = 1100_{2} + 1011_{2} = 0111_{2} \neq 7_{10}となってしまう。

浮動小数形式

単精度(32Bit)の場合

符号(1bit) + 指数部(8bit) + 仮数部(23bit)

で表現する。

符号(s)
正の値ならs=0、負の値ならs=1として(-1)^{s}を取る
指数部(e)
実際の値にバイアス値127を加算した値。8Bitなので0∼255表現できるが、負の場合にも対応するため-127∼128とする。
仮数部
指数を調整するため、小数点を移動して1.***の形式に変換した数

たとえば13.25_{10} = 1101.01_{2}1.10101\times 2^{3}であるから、浮動小数形式形式では符号は0、指数部は127_{10} + 3_{10} = 130_{10} = 10000010_{2}、仮数部は10101000000000000000000_{2}(23ビットになるようゼロを埋める)となり、つまり|0|10000010|10101000000000000000000|と表現される。

指数が有理数

指数が有理数とはどういう意味か?これまでとりあえず「覚える」ってことでやりすごしてきたけ吉田武の「虚数の情緒」に解説。まず指数法則のおさらい、

a^{m} \times a^{n} = a^{m+n}
(a^{m})^{n} = a^{m\times n}

ここで、m,nは整数であり、

a^{-m} = \frac{1}{a^{m}}
a^{0} = 1

である。このときa^{1} = aであるが、1 = \frac{2}{2}として考え上記指数法則を適用すると

a = a^{\frac{2}{2}} = \left(a^{\frac{1}{2}}\right)^{2}

となる。このとき最後の()の中身に注目するとこれは2乗してaになる数つまりaの平方根\sqrt{a}にほかならない。つまり、

a^{\frac{1}{2}}=\sqrt{a}

である。

ほんと吉田氏の本は面白い。

ペアノ帰納法

ある自然数nがあるとき、0 から nまでのすべての整数を合計は、\frac{n\times(n+1)}{2}である。

(証明)
\left(0+1+2+3+\cdots +n\right) = \frac{n\times(n+1)}{2} を仮定し、\left(n+1\right)を代入する

\frac{n\times(n+1)}{2}+\left(n+1\right) = \frac{\left(n+1\right)\times\left(\left(n+1\right)+1}{2}

両辺を展開して、

\frac{n^{2}+n}{2}+\left(n+1\right) = \frac{n^{2}+3n+2}{2}

分母を揃え

\frac{n^{2}+n+2n+2}{2} = \frac{n^{2}+3n+2}{2}

左辺を整理すると

\frac{n^{2}+3n+2}{2} = \frac{n^{2}+3n+2}{2}

数学オリンピックチャンピョンの美しい解き方

  • 問題を理解する
  • データを理解する
  • 対象を理解する
  • よい表記を選ぶ
  • 問題をわずかに変更する

4番目についてはさらに詳しく、(ミルカさん、いや「僕」がいいそうな)

  1. その問題の、極端な、または退化ケースのような特別な場合を考える
  2. その問題の簡略版を特く
  3. その問題の含意すると思われる予想を定式化して、まずそれを証明しようと試みる
  4. その問題の結果を引き出して、まずそれを証明しようと試みる
  5. その問題を再定式化する(たとえば、対偶をとる、背理法で証明する、あるいは置換を試みる)
  6. 類似した解法を検討する
  7. その問題を一般化する

ここまでやるのは、凡人にとって「わずかな変更」ではなけどね。

数学オリンピックチャンピオンの美しい解き方数学オリンピックチャンピオンの美しい解き方
テレンス・タオ 寺嶋英志

青土社 2010-07-23
売り上げランキング : 135291

Amazonで詳しく見る by G-Tools

高信頼性システムの考え方2

システムの信頼性評価の基準として、信頼性(Reliability)・可用性(Availability)・保守性(Serviceabilityy)・完全性(Integrity)・機密性(Security)。これらの頭文字を使ってRASIS(レイシス、ラシス)と呼ぶ。

また、信頼性の指標としてMTBF(平均故障間隔)、可用性の指標として稼働率、保守性の指標としてMTTR(平均修理時間)がある。稼働率は、\frac{MTBF}{MTBF+MTTR}として計算する。

機器がすべて稼働していなければならない直列のシステムでは、稼働率は各機器の稼働率を掛け合わせたものとなる。反対にいづれかの機器が稼働すれば良い並列のシステムでは1-(一台も稼働していない確率)で求められる。

高信頼性システムの考え方

フェールソフト
障害が発生した場合は故障部分を切り離すなど、機能を低下させてでも最低限の処理は継続しようとする考え方。故障部分を切り離して継続的に稼働させることを、縮退運転(フォールバック)と呼ぶ
フェールセーフ
障害による影響の拡大を防ぎ、システムをできるだけ安全な状態に導こうとする考え方。状況によっては処理の停止もやむを得ないとする。
フールプルーフ
誤入力などの人為的ミスが起こりにくいように設計するという考え方。
フォールトアボイダンス
システムを各構成要素の信頼性を上げるなどして、障害の発生を防ぐ
フォールトマスキング
ある部分に障害が発生したとき、補正などを行って外部から障害が解らないように隠蔽しながら(稼働を継続しながら)、同時に自立的な障害修復も行う

かつて勉強したはずだが、朧気にしか覚えていない…