跳慮跋考

興味も思考も行先不明

和の比と比の和の不等式


数学的帰納法により示す。

の時
 \frac{x_1}{a_1} + \frac{x_2}{a_2} - \frac{ x_1 + x_2 }{ a_1 + a_2 }
 \frac{a_2 x_1 + a_1 x_2}{a_1 a_2} - \frac{ x_1 + x_2 }{ a_1 + a_2 }
 = \frac{ (a_1 + a_2)(a_2 x_1 + a_1 x_2) - a_1 a_2 (x_1 + x_2) }{ a_1 a_2 (a_1 + a_2) }
 = \frac{ a_2^2 x_1 + a_1^2 x_2 }{ a_1 a_2 (a_1 + a_2) }
 > 0
よって成り立つ。

 n = k の時に成り立つとすると

ここで (x_k, a_k) \to (x_k + x_{k+1}, a_k + a_{k+1}) と置き換えると

 n = 2 の場合より

であるから

となり n = k + 1 でも成り立つ。

以上より任意の n \ge 2 について示された。 \qed


はてな記法 \TeXを試してみようと、何かの証明に使おうとした補題を載せてみる。
はてなで使われてるmimeTeXは美しくないので、「LaTeXのオンライン数式画像生成ツールの比較」を参考に要所々々でCodecogsのを使ってみると好い感じかな? ってゆう。

形態素解析器

C#から直截形態素解析器のライブラリを使いたいよぉ…ふぇぇ…って人に。
茶筌はツン過ぎて辛かっただって何ですかstring[]渡すだけなのに。

using System.Runtime.InteropServices;

class MeCab : IDisposable
{
    IntPtr ptr;

    [DllImport("libmecab.dll", CallingConvention = CallingConvention.Cdecl)]
    private extern static IntPtr mecab_new2(string arg);
    [DllImport("libmecab.dll", CallingConvention = CallingConvention.Cdecl)]
    private extern static IntPtr mecab_sparse_tostr(IntPtr m, string str);
    [DllImport("libmecab.dll", CallingConvention = CallingConvention.Cdecl)]
    private extern static void mecab_destroy(IntPtr m);

    public MeCab()
    {
        ptr = mecab_new2(@"-F%m\s%f[6]\s%f[0]\n");
    }
    public string sparse_tostr(string str_in)
    {
        return Marshal.PtrToStringAnsi(mecab_sparse_tostr(ptr, str_in));
    }
    public void Dispose()
    {
        mecab_destroy(ptr);
    }
}

class Chasen
{
    [DllImport("libchasen.dll", CallingConvention = CallingConvention.Cdecl)]
    extern static int chasen_getopt_argv([MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr, SizeParamIndex = 1)]string[] argv, IntPtr file);
    [DllImport("libchasen.dll", CallingConvention = CallingConvention.Cdecl)]
    extern static IntPtr chasen_sparse_tostr(string str_in);

    public Chasen()
    {
        string[] argv = { "", "-s", "-F", @"%m %M %H\n", null };

        if (chasen_getopt_argv(argv, IntPtr.Zero) == 1)
            throw new ArgumentException();
    }
    public string sparse_tostr(string str_in)
    {
        return Marshal.PtrToStringAnsi(chasen_sparse_tostr(str_in));
    }
}