【コロナ禍の終息時期】のアンケート

 皆さん、アンケートの回答・コメントありがとうございました。
 はてな民的には、2年後が一番多いようです。(^_^;
 新型コロナウイルス感染症の緊急事態宣言が解除されてから、また、増えてきましたが、欧米に比べて被害が少なかったのは、みんな、まじめに活動を自粛していたのが、一番効いていたのかなぁ。

Official髭男dism - Pretender

 何かいい感じなので、はってみました。(^_^;
 これも「歌ってみた」動画が多いのでカラオケで儲けてるのかなぁ。(^_^;
Official髭男dism - Pretender[Official Video]

Pretender(通常盤)(特典なし)

Pretender(通常盤)(特典なし)

Traveler[通常盤]

Traveler[通常盤]

Langleyの問題を三角関数で解いてみた。(3)

 ネットで見つけたラングレーの問題三角関数で解いてみました。
 問題の設定や図は、次の通りです。ここでは、xも与えられていて、証明問題になっています。(^_^;

 a = 38°, b = 46°, c = 22°, d = 48°; x = 18°?

 このとき、e = 180°-(46+22+48)°= 64°, f = 180°-(38+46+22)°= 74°
 前回と同様に、x,yの連立方程式を立てて、変数部分と定数部分P,Qに分けると、
x+y=46+22=68=P \cdots(1)
\frac{\sin(y^{\circ})}{\sin(x^{\circ})}=\frac{\sin(46^{\circ})\sin(48^{\circ})\sin(74^{\circ})}{\sin(38^{\circ})\sin(22^{\circ})\sin(64^{\circ})}=Q \cdots(2)
 x=18°のとき、(1)式から、y=68-18=50°
 これらを(2)式に代入して、両辺の分母を払って、
\sin(18^{\circ})\sin(46^{\circ})\sin(48^{\circ})\sin(74^{\circ})=\sin(22^{\circ})\sin(38^{\circ})\sin(50^{\circ})\sin(64^{\circ}) \cdots(3)
 結局、この等式の左辺lhsと右辺rhsの差D=0を示せばよい。
 ここで、三角関数の積和の公式を数回連続で使って導いた次の公式を使います。(^_^;

 sin(a)cos(b)             = (1/2) {sin(a+b)+sin(a-b)}
 sin(a)cos(b)cos(c)       = (1/4) {sin(a+b+c)+sin(a+b-c)+sin(a-b+c)+sin(a-b-c)}
 sin(a)cos(b)cos(c)cos(d) = (1/8) {sin(a+b+c+d)+sin(a+b+c-d)+sin(a+b-c+d)+sin(a+b-c-d)
                                   +sin(a-b+c+d)+sin(a-b+c-d)+sin(a-b-c+d)+sin(a-b-c-d)}

8lhs=8\sin(18^{\circ})\cos(90-46^{\circ})\cos(90-48^{\circ})\cos(90-74^{\circ})
 =8\sin(18^{\circ})\cos(44^{\circ})\cos(42^{\circ})\cos(16^{\circ})
 =\sin(120^{\circ})+\sin(88^{\circ})+\sin(36^{\circ})+\sin(4^{\circ})+\sin(32^{\circ})+\sin(0^{\circ})-\sin(52^{\circ})-\sin(84^{\circ})
 =\sin(60^{\circ})+\sin(88^{\circ})+\sin(36^{\circ})+\sin(4^{\circ})+\sin(32^{\circ})-\sin(52^{\circ})-\sin(84^{\circ})

8rhs=8\sin(22^{\circ})\cos(90-38^{\circ})\cos(90-50^{\circ})\cos(90-64^{\circ})
 =8\sin(22^{\circ})\cos(52^{\circ})\cos(40^{\circ})\cos(26^{\circ})
 =\sin(140^{\circ})+\sin(88^{\circ})+\sin(60^{\circ})+\sin(8^{\circ})+\sin(36^{\circ})-\sin(16^{\circ})-\sin(44^{\circ})-\sin(96^{\circ})
 =\sin(40^{\circ})+\sin(88^{\circ})+\sin(60^{\circ})+\sin(8^{\circ})+\sin(36^{\circ})-\sin(16^{\circ})-\sin(44^{\circ})-\sin(84^{\circ})

8D=8lhs-8rhs
 =\{\sin(4^{\circ})+\sin(32^{\circ})-\sin(52^{\circ}) \}-\{\sin(40^{\circ})+\sin(8^{\circ})-\sin(16^{\circ})-\sin(44^{\circ}) \}
 =\sin(4^{\circ})-\{\sin(40^{\circ})-\sin(32^{\circ}) \}-\{\sin(52^{\circ})-\sin(44^{\circ}) \}+\{\sin(16^{\circ})-\sin(8^{\circ}) \}
 =\sin(4^{\circ})-2\cos(36^{\circ})\sin(4^{\circ})-2\cos(48^{\circ})\sin(4^{\circ})+2\cos(12^{\circ})\sin(4^{\circ})
 =2\sin(4^{\circ})\{\frac{1}{2}-\cos(36^{\circ})-\cos(48^{\circ})+\cos(12^{\circ}) \}
 =2\sin(4^{\circ})\{\frac{1}{2}-\sin(54^{\circ})-\sin(42^{\circ})+\sin(78^{\circ}) \}
 =2\sin(4^{\circ})\{\frac{1}{2}-\sin(54^{\circ})+\sin(18^{\circ}) \}
 =2\sin(4^{\circ})(\frac{1}{2}-\frac{\sqrt{5}+1}{4}+\frac{\sqrt{5}-1}{4} )=0

 ちなみに、

\sin(x)=\sin(x+60^{\circ})+\sin(x-60^{\circ})
\cos(x)=\cos(x+60^{\circ})+\cos(x-60^{\circ})=\cos(60^{\circ}+x)+\cos(60^{\circ}-x)
\sin(54^{\circ})-\sin(18^{\circ})=2\sin(54^{\circ})\sin(18^{\circ})=\frac{1}{2}

P.S.
 8D=8lhs-8rhs以下の式変形が難しかったら、
 公式 sin(x)=sin(x+60゚)+sin(x-60゚)で、項数を5個まで減らせたら、
 公式 sin(x)=sin(x+36゚)+sin(x-36゚)-sin(x+72゚)-sin(x-72゚)を使うとよいです。
P.S.
[x]=sin(x゚)と略記すると、
8lhs=[60]+[88]+[36]+[4]+[32]-[52]-[84]
8rhs=[40]+[88]+[60]+[8]+[36]-[16]-[44]-[84]
∴8D=8lhs-8rhs
=[4]+[32]-[52]-[40]-[8]+[16]+[44]
=[4]+[32]-[40]+[16]+[44]-[68] (∵[8]=[68]-[52])
=[4]+[32]-[40]-[68]+[76] (∵[16]=[76]-[44])
=0 (∵[4]=[4+36]+[4-36]-[4+72]-[4-72]=[40]-[32]-[76]+[68])
 ちなみに、他も同様。
[32]=[32+36]+[32-36]-[32+72]-[32-72]=[68]-[4]-[76]+[40]

※参考URL
[幾何大王からの挑戦状] 角度の問題#36
Angular Angst - MathPages
Langleyの問題をJavaで解いてみた。
Langleyの問題を三角関数で解いてみた。
sin(3°)系列
sin(3°)系列 (2)

P.S.
 ちょっと、ネットで検索して見つけた1変数の式を使って解いてみます。以下、三角関数の単位は[°]で、省略します。

sin(a)sin(c)sin(b+c+d-x) = sin(a+b)sin(d)sin(x)

∴sin(38)sin(22)sin(46+22+48-x) = sin(38+46)sin(48)sin(x)
∴sin(38)sin(22)sin(116-x) = sin(84)sin(48)sin(x)
∴sin(38)sin(22)sin(116-18) = sin(84)sin(48)sin(18)
∴sin(22)sin(38)sin(82) = sin(18)sin(48)sin(84)

 結局、この等式の左辺lhsと右辺rhsの差D=0を示せばよい。
 ここで、今回は、積も和も全部+のcosだけの式になる三角関数の積和の公式を用いてみます。(^_^;

 cos(a)cos(b)             = (1/2) {cos(a+b)+cos(a-b)}
 cos(a)cos(b)cos(c)       = (1/4) {cos(a+b+c)+cos(a+b-c)+cos(a-b+c)+cos(a-b-c)}
 cos(a)cos(b)cos(c)cos(d) = (1/8) {cos(a+b+c+d)+cos(a+b+c-d)+cos(a+b-c+d)+cos(a+b-c-d)
                                   +cos(a-b+c+d)+cos(a-b+c-d)+cos(a-b-c+d)+cos(a-b-c-d)}

4lhs=4cos(90-22)cos(90-38)cos(90-82)=4cos(68)cos(52)cos(8)
=+cos(68+52+8)+cos(68+52-8)+cos(68-52+8)+cos(68-52-8)
=+cos(128)+cos(112)+cos(24)+cos(8)
=-cos(52)-cos(68)+cos(24)+cos(8)

4rhs=4cos(90-18)cos(90-48)cos(90-84)=4cos(72)cos(42)cos(6)
=+cos(72+42+6)+cos(72+42-6)+cos(72-42+6)+cos(72-42-6)
=+cos(120)+cos(108)+cos(36)+cos(24)
=-cos(60)-cos(72)+cos(36)+cos(24)

∴4D=4lhs-4rhs
={-cos(52)-cos(68)+cos(24)+cos(8)}-{-cos(60)-cos(72)+cos(36)+cos(24)}
={-cos(52)-cos(68)+cos(8)}-{-cos(60)-cos(72)+cos(36)}
={-cos(8)+cos(8)}-{-cos(60)+cos(60)}=0


cos(8)=cos(60+8)+cos(60-8)=cos(52)+cos(68)
cos(60)=cos(60+36)+cos(60-36)-cos(60+72)-cos(60-72)=cos(36)-cos(72)

※公式集(ただし、単位は、[°])

\cos(-x)=\cos(x), \cos(x)=-\cos(180^{\circ}-x)
\cos(x)=\cos(x+60^{\circ})+\cos(x-60^{\circ})=\cos(60^{\circ}+x)+\cos(60^{\circ}-x)
\sin(x)=\sin(x+60^{\circ})+\sin(x-60^{\circ})=\sin(60^{\circ}+x)-\sin(60^{\circ}-x)
\cos(x)=\cos(x+36^{\circ})+\cos(x-36^{\circ})-\cos(x+72^{\circ})-\cos(x-72^{\circ})
\sin(x)=\sin(x+36^{\circ})+\sin(x-36^{\circ})-\sin(x+72^{\circ})-\sin(x-72^{\circ})
\cos(60^{\circ})=\cos(60^{\circ}+36^{\circ})+\cos(60^{\circ}-36^{\circ})-\cos(60^{\circ}+72^{\circ})-\cos(60^{\circ}-72^{\circ})
=\cos(36^{\circ})-\cos(72^{\circ})=\frac{1}{2}

P.S.
 証明は、たとえば、積和公式2sin(x)cos(y)=sin(x+y)+sin(x-y)で、y=60°とおく。
 また、積和公式で、y=36°とおいたものから、y=72°とおいたものを引いて、cos(36°)-cos(72°)=1/2を使う。
 ちなみに、cos(36°)-cos(72°)=2sin(18°)sin(54°)
=2sin(18°)sin(72°)*2sin(36°)sin(54°)/(2sin(36°)sin(72°))=1/2

(以下、単位は、[rad])
\cos(x)=\sum_{k=1}^{n}{(-1)^{k-1} \left(\cos\left(x+\frac{\pi k}{2n+1}\right)+\cos\left(x-\frac{\pi k}{2n+1}\right)\right)} (where n=1,2,3,...)
\cos(x)=\sum_{k=1}^{2n}{(-1)^{k-1}\cos\left(x+\frac{\pi k}{2n+1}\right)}
\sin(x)=\sum_{k=1}^{2n}{(-1)^{k-1}\sin\left(x+\frac{\pi k}{2n+1}\right)}

※参考URL
kadai78

【国民一律10万円給付】のアンケート

 皆さん、アンケートの回答・コメントありがとうございました。
 やっぱり、国民一律10万円給付の「特別定額給付金」の方がはてな民的にも人気でした。(^_^;
 「給付金」といえば、聞こえがいいですが、将来、税金で回収することになるのだから、結局、国から出世払いの融資を受けているのと同じことだと思います。だから、お金持ちでも、遠慮せずに受け取ってもいいのではないのかな。(^_^;

金貨と銅貨と空箱の「うそつき問題」をPythonで解いてみた

 エイプリルフールなので、金貨と銅貨と空箱の「うそつき問題」をPythonで解いてみました。(^_^;

 A~Eの五つの箱があり、これらの箱は、金貨の入った箱、銅貨の入った箱、空箱の3種類の場合がある。
 また、それぞれの箱にはラベルが付いているが、そのラベルの記述の内容は、金貨の入った箱のものは真(真実に一致している)であるが、銅貨の入った箱のものは偽(真実に反している)であり、空箱のものは真の場合も偽の場合もあるという。
 このとき、銅貨の入った箱が二つあるとすると、確実に銅貨の入った箱はどれか。
[ラベル]
A:「Bのラベルの記述の内容は真である。」
B:「Aが空箱ならば、この箱も空箱である。」
C:「この箱は、銅貨の入った箱である。」
D:「AかEの少なくとも一方は、銅貨の入った箱である。」
E:「この箱は、金貨の入った箱である。」

 これは、天使と悪魔と人間の「うそつき問題」の類題です。
 Aのラベルの記述の条件で、「b!='C'」のとこは、「b=='G' or b=='E'」や「Imp(a=='E',b=='E')」でもいいです。

● Liar12.py

# coding: UTF-8
# Liar12.py

import itertools
from time import time

# 論理等価Eqv
def Eqv(p,q):
    return not(p^q)

# 論理包含Imp
def Imp(p,q):
    return not p or q

# 確実にいえる選択肢を1つ得る
def getAns(cho,lbl='12345'):
    if cho.count(True)!=1: print('Error!')
    return ','.join([lbl[i] for i in range(len(cho)) if cho[i]])

def main():
    tm = time() # Timer Start
    choices = [True]*5
    P = 'CEG'
    for p in itertools.product(P,repeat=5):
        if not p.count('C')*p.count('E')*p.count('G')!=0: continue
        if not p.count('C')==2: continue
        a,b,c,d,e = p
        if not Imp(a!='E',Eqv(a=='G',b!='C')): continue
        if not Imp(b!='E',Eqv(b=='G',Imp(a=='E',b=='E'))): continue
        if not Imp(c!='E',Eqv(c=='G',c=='C')): continue
        if not Imp(d!='E',Eqv(d=='G',a=='C' or e=='C')): continue
        if not Imp(e!='E',Eqv(e=='G',e=='G')): continue
        pass # チェックを潜り抜けたものを表示
        print(p)
        pass # 選択肢のチェック
        choices[0] &= (a=='C')
        choices[1] &= (b=='C')
        choices[2] &= (c=='C')
        choices[3] &= (d=='C')
        choices[4] &= (e=='C')

    print(u"∴%s"%getAns(choices,'ABCDE'))
    print("Runtime : %.3f [sec]"%(time()-tm))   # Timer Stop & Disp

if __name__ == '__main__':
    main()

●実行結果

('E', 'C', 'E', 'C', 'G')
('E', 'C', 'E', 'G', 'C')
∴B

※参考URL
天使と悪魔と道化の「ウソつき問題」をPythonで解いてみた。 - rscのブログ