過去ログ

uchinyan
#30411,#30412,#30413,#30414,#30416
(ごめんなさい。計算がかなり冗長でした。修正しました。)
今更という感じですが,#30412の詳細です。
dobaさんのアイディアと基本的には同じだと思いますが,計算はもっと直接的です。

・b が奇数の場合
��{k=1,b-1} [k * a/b]
= ��{k=1,(b-1)/2} {[k * a/b] + [(b-k) * a/b]}
= ��{k=1,(b-1)/2} {[k * a/b] + [a - k * a/b]}
ここで,a は整数,k * a/b は a, b が互いに素なので整数ではないです。そこで,
[a - k * a/b] = a - [k * a/b] - 1
と書けます。最後の -1 がミソですね。これから,
��{k=1,b-1} [k * a/b]
= ��{k=1,(b-1)/2} {[k * a/b] + a - [k * a/b] - 1}
= (b-1)/2 * (a-1)
= (a-1)(b-1)/2
になります。
・b が偶数の場合
��{k=1,b-1} [k * a/b]
= ��{k=1,b/2-1} {[k * a/b] + [(b-k) * a/b]} + [b/2 * a/b]
= ��{k=1,b/2-1} {[k * a/b] + [a - k * a/b]} + [a/2]
ここで,同様に,[a - k * a/b] = a - [k * a/b] - 1 なので,
= ��{k=1,b/2-1} {[k * a/b] + a - [k * a/b] - 1} + [a/2]
= (b-2)/2 * (a-1) + [a/2]
= (a-1)(b-2)/2 + [a/2]
になります。
つまり,
b が奇数のとき:(a-1)(b-1)/2
b が偶数のとき:(a-1)(b-2)/2 + [a/2]
となって,後は,#30412のとおり b が偶数のときは [a/2] = (a-1)/2 なので,結局,
��{k=1,b-1} [k * a/b] = (a-1)(b-1)/2
になります。

この結果をながめていて,#30416の友人さんの解法も思いつきましたが,後の祭りですね (^^;
ネコの住む家   7月27日(金) 13:57:03   MAIL:uchi@sco.bekkoame.ne.jp   30417

過去問題一覧へ戻る