Solution-創作ネタ置き場

個人サークル「Solution」としての音楽と、おまけの小説、あるいは創作全般のあれこれについて。雑談も多め。

【同人活動×タスク管理】進捗管理と台形の面積の公式のお話

進捗管理と台形の面積の公式のお話

ちょっと数学的な話題。
でも、最終的には台形の面積の公式の応用になるのでご安心ください。

正直、コミケよりずっと前に出せてたら良い記事でした。

(※数式に心を壊された人向け)
(残りタスク数)={(MAX消化数/日)+(MIN消化数/日)}×(日数)÷2 とか、
(残りタスク数)=消化数の平均×日数
になるように調整してね!

{}

ざっくり概要

作業件数T件、作業日数をD日としたとき、最初は a_11処理して、徐々にタスク数を減らして最後の日は a_D件で終わり、というタスクの消化を考えます。
減らすペースは、計算の過程で無視できるので何件ずつでも良いです。
これが、最終的には、台形の公式の応用で、

 T = \displaystyle \frac{a_1 + a_D}{2} D (1)

という公式になります。
このうち、 a_1, Dの2つを調整していく作業になります。

数学者ガウスの逸話と進捗管理

数学者ガウスの逸話で、幼少期に算数の「1から100まですべて足すといくつになるか」という問題を、あっという間に解いてしまった、とされています。
その原理はさほど難しくはなく、

 1 + 2 + ... + 99 + 100
 = ( (1 + 2 + ... + 99 + 100) + (100 + 99 + ... + 2 + 1) )  \div 2
 = \displaystyle \frac{(1 + 100) \times 100}{2} (2)

と、筆算の式とともに2紹介されている教科書もあったかと思います。
これを変数などで置き換えると、

 a + (a + 1) + ... + (a + n - 2) + (a + n - 1)
 = ( ( a + (a + 1) + ... + (a + n - 2) + (a + n - 1) ) + ( (a + n - 1) + (a + n - 2) + ... + a ) ) \div 2
 = ( ( a + (a + n - 1) ) \times n ) \div 2
 = ((2a + n - 1) \times n ) \div 2 (3)

となり、ここでは数字が1つずつ増えていきますが、そのペース(増分)が等しいとすれば、逆順にした数列で打ち消されるので、無視できることが分かります。

高校数学で習うΣの計算では

高校数学の等差数列公式を用いると、もっと簡単になります。

 S_n = a + (a + d) + (a + 2d) + ... + (a + (n-1)d)
 = \displaystyle \frac{n(a + a_n)}{2} (4)

ただし  a_n = a + (n - 1)d (dは公差)

元の証明については難しくなるので、興味ある方はお調べいただくとして、 求められた式が、冒頭に紹介した式に非常に似ていることが分かりますでしょうか。
それぞれ、 N→D, a→a_1 に置き換えると、

 \displaystyle  T = \frac{(a_1 + a_D) }{2}D
ただし、 a_D= a_1 + b(D-1)

このように、元の式(1)になったことが分かります。

台形の公式に似ている

さらに、これを台形の公式と見比べてみます。
面積S, 上辺a, 下辺b, 高さhの公式で、

 \displaystyle  S = \frac{(a + b) }{2}h (5)

それぞれ、 h→D, a→a_1, b→a_D, S→Tに置き換えると、(式は割愛しますが)同じ式(1)が導けます。
図にして見比べてみましょう。

f:id:Urahito:20180804170511p:plain

f:id:Urahito:20180804170547p:plain

初日と最終日のタスク数の決め方

そうすると、初日と最終日のタスク数を決めるとよいのですが、決め方がいろいろあります。
例えば、初日の何%までやるかを決めていれば、

 a_D = a_1 \times r  (0 \lt r \leq 1)

より、過程を省略して代入すると

 \displaystyle  T = \frac{a_1(1+r)}{2}D (6)

あるいは、最低でもこなせる数を a_D、逆に最大でこなせる限界を a_1にしてしまってもよいでしょう。 これは元の計算式に置き換えられるので割愛します。

あるいは、最初から最大最小の消化数を決めておいて、以下にするのも良いでしょう。

 \displaystyle  T = \frac{a_{max} + a_{min} }{2}D (7)

式を変形してみる

最大で消化する数を求めたいとき

数日が経過したけど、見直しがしたい場合は、Tに残りタスク数を入れて考えてみましょう。
以下の式は、(7)の変形で、「徐々に最初に決めた最小消化数 a_{min}に落ち着けるとして、最初に(最大で)消化する数 a_{max}」を求める形です。

 \displaystyle  a_{max} = \frac{2T}{D} - a_{min} (8)

最大・最小の消化数と全体のタスク数が分かっているときの日数

逆に、日数を求めたいときは以下のように。

 \displaystyle  D = \frac{2T}{a_{max} + a_{min} } (9)

まとめと宣伝

以上のように、必ずしも同じペースでない前提で話を進めましたが、もちろんコンスタントにいけるなら単に平均×日数で計算が楽ということも付記しておきます。
最初にも書きましたが、コミケよりも早い時期に書くべき記事でしたが、思いついたのがつい先日でした……。

C94宣伝コーナー

スペース情報

頒布物

  • 巫女さんえにしさま(本編)第1章(5月文フリ新刊)
  • ワンライまとめ本

詳細情報は宣伝記事の方で。

urahito-solution.hatenablog.com

よろしくお願いいたします。


  1. 後ほど扱う数列では、本来は添え字は0が望ましいですが、「1日目」という意味で添え字を1にしています

  2. 数式の記法にあったかド忘れしたのでこれで