Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

tan 20 tan30 tan 40 = tan10 (degree)

2 views
Skip to first unread message

Wakamtu kazuhiro

unread,
Oct 10, 2002, 9:10:01 AM10/10/02
to
若松といいます。ここではクイズもいいようですから私が悩んだ問題を。

以下の式を証明してください。
tan 20 tan 30 tan 40 = tan 10
単位は「度」です。
なるべく簡単なものを期待。


--
ひとは「信じられるものだけを信じる」ことができますね。

Tsukamoto Chiaki

unread,
Oct 11, 2002, 4:25:43 AM10/11/02
to
# コノスレニハダレモイナイ……イマノウチ

整角三角形の問題ですね.

In article <ao3u79$8ua$2...@news1.synapse.ne.jp>


Wakamtu kazuhiro <w...@po4.synapse.ne.jp> writes:
> 以下の式を証明してください。
> tan 20 tan 30 tan 40 = tan 10
> 単位は「度」です。

三角形ABCにおいて, ∠ABC = 90°, ∠BAC = 40°, (∠ACB = 50°,)
であるとします. 辺AB上に点Dを ∠BCD = 30°となるように取ります.
辺BC上に点Eを ∠BDE = 20°となるように取ります.

tan 40°tan 30°tan 20°
= (BC/AB)(BD/BC)(BE/BD)
= BE/AB

ですから, ∠BAE = 10°を示せば良い.

∠AED = ∠BDE - ∠DAE = 20°- ∠DAE に注意すれば, ∠BAE = 10°
となることは, ∠AED = ∠DAE となることと, 従って, AD = DE と
なることと同値です. AD = DE を示しましょう.

辺AC上に点Fを ∠AFD = ∠DAF (= 40°) となるように取ります.
AD = DF ですが, ∠DCF = ∠ACB - ∠BCD = 20°, ∠CDF
= ∠AFD - ∠DCF = 20°であることに注意すれば, DF = CF でも
あります. F から線分CDに下ろした垂線の足をHとします. すると
CH = DH = (1/2)CD です.

一方, 三角形BCDは正三角形を半分にした直角三角形ですから,
BD = (1/2)CD です.

HD = BD (= (1/2)CD),
∠HDF = ∠BDE (= 20°),
∠DHF = ∠DBE (= 90°),

よって, 三角形HDFと三角形BDEとは合同です.

従って, DE = DF = AD. Q.E.D.

--

i...@htk.hitachi-cable.co.jp

unread,
Oct 12, 2002, 2:36:15 AM10/12/02
to
w...@po4.synapse.ne.jp (Wakamtu kazuhiro) writes:

> 以下の式を証明してください。
> tan 20 tan 30 tan 40 = tan 10
> 単位は「度」です。
> なるべく簡単なものを期待。

凡人向きの簡単な解答です。

0 < 4x < π/2 であるような x に対し、t = tan x と置くと、
簡単な計算により、

tan 2x = 2t / (1-t^2),
tan 3x = t(3-t^2) / (1 - 3^t^2),
tan 4x = 4t(1-t^2) / ((1-t^2)^2 - 4t^2),
tan 2x tan 3x tan 4x = 8t^3(3-t^2) / ((1-3^t^2)((1-t^2)^2 - 4t^2)), ---(1)

が示される。

x = 10°のとき、tan 3x = 1/√3 なので

t(3-t^2) / (1 - 3^t^2) = 1/√3,
√3t^3 - 3t^2 -3√3t + 1 = 0 ---(2)

である。

t が (2) を満たすとき、(1) の右辺 = t であることを示せばよい。

(1) の右辺 = t という条件は、簡単な計算により

3t^6 - 27t^4 + 33t^2 - 1 = 0 ---(3)

と同値であることがわかる。(3) の左辺は

3t^6 - 27t^4 + 33t^2 - 1
= (√3t^3 - 3t^2 -3√3t + 1)(√3t^3 + 3t^2 -3√3t - 1)

と因数分解できるので、 (2) を満たす t は (3) も満たすことが言えた。

--
********************
Ito Kazumitsu

Tsukamoto Chiaki

unread,
Oct 15, 2002, 4:20:20 AM10/15/02
to
三角関数の加法定理を使うと小学生に説明するのが大変.

In article <ao3u79$8ua$2...@news1.synapse.ne.jp>
Wakamtu kazuhiro <w...@po4.synapse.ne.jp> writes:

> 以下の式を証明してください。
> tan 20 tan 30 tan 40 = tan 10
> 単位は「度」です。

tan 20°tan 30°tan 40°

= (tan 20°tan 40°)/ tan 60°
= (sin 20°sin 40°cos 60°)/(cos 20°cos 40°sin 60°)
= ((1/2) sin 20°sin 40°)/(cos 20°(sin(60°- 40°) + sin 40°cos 60°))
= ((sin 20°)^2 cos 20°)/(cos 20°(sin 20°+ sin 20°cos 20°))
= sin 20°/(1 + cos 20°)
= (2 sin 10°cos 10°)/(2 (cos 10°)^2)
= sin 10°/ cos 10°
= tan 10°

--

Wakamtu kazuhiro

unread,
Oct 15, 2002, 8:35:10 AM10/15/02
to
若松です。なんか即答されましたね。
証明見事です。

In article <02101117254...@ims.ipc.kit.ac.jp>, chi...@ipc.kit.ac.jp says...
>整角三角形の問題ですね.

無知なもので「整角三角形」ってなんだか知りません。よければ教えてください。
というかひょっとして有名な問題?

回答として予想していたもの。
(1)初等幾何による中学生レベルの回答。
(2)三角関数の加法定理などを用いた高校生レベルの回答。
(3)円分体の整数論を用いた大学生レベルの回答。

上の回答は (1) で Ito Kazumitsu さんのは (2) ですね。
(でも私は4倍角だの6次式だのまともに計算する気力はない)

もともとが中学レベルの幾何の難問からで、
(もう内容正確に思い出せません。確かブルーバックスの「数学質問箱」あたりか)
それを変形してって得たもので、昔 (2) でやったときはノート数ページかかって
やっとでした。

で、いつかここで「クイズ」じゃなくて「質問」しようと思っていたのですが、
しばらく前に (3) に成功して、ついでに若干拡張に成功しました。

問:tan 20 tan 40 tan 80=√3 を適当に拡張して証明せよ。

を今度は出しておきます。これも即答されたりして。(私の数年間はいったい…)

--
ひとは「信じられるものだけを信じる」ことができますね。

Tsukamoto Chiaki

unread,
Oct 15, 2002, 9:32:18 AM10/15/02
to
工繊大の塚本です.

In article <aoh21u$mml$2...@news1.synapse.ne.jp>
Wakamtu kazuhiro <w...@po4.synapse.ne.jp> writes:
> 無知なもので「整角三角形」ってなんだか知りません。よければ教えてください。

おっと失礼しました. 「整角四角形」の問題です. 三角形だけでは
意味がないですね.

> というかひょっとして有名な問題?

四角形とその対角線で決まる八つの角度のうち, 四つを与えて残りを
初等幾何学的に求められる四角形を決定せよという問題で, 特に角度
の比が整数比になるものを整角四角形と呼ぶようです.

実は先日松江で行われた日本数学会の秋季総合分科会の幾何学分科会
で東工大理工の増田一男さんによる「1の巾根の線形関係式の初等幾何
への応用: 正多角形の対角線の多重点および整角4角形の決定」という
講演がありました.

参考文献としては

池野信一: 整角4角形問題, 数学セミナー, 1984.8, 6--11.
雨宮一郎: 四角形の角の間の関係, 数セミ, 1990.10. 66-71.
Armando Machado: Nineteen Problems on Elementary Geometry,
Math. Intelligencer, Vol. 17, No. 1, 17--19, 1995.

が挙げられていました. まあ, 有名な問題だと思います.

tan 20°tan 30°tan 40°= tan 10°

もこの一つと考える事が出来ます.

> 回答として予想していたもの。
> (1)初等幾何による中学生レベルの回答。
> (2)三角関数の加法定理などを用いた高校生レベルの回答。
> (3)円分体の整数論を用いた大学生レベルの回答。
>
> 上の回答は (1) で Ito Kazumitsu さんのは (2) ですね。
> (でも私は4倍角だの6次式だのまともに計算する気力はない)
>
> もともとが中学レベルの幾何の難問からで、
> (もう内容正確に思い出せません。確かブルーバックスの「数学質問箱」あたりか)
> それを変形してって得たもので、昔 (2) でやったときはノート数ページかかって
> やっとでした。
>
> で、いつかここで「クイズ」じゃなくて「質問」しようと思っていたのですが、
> しばらく前に (3) に成功して、ついでに若干拡張に成功しました。
>
> 問:tan 20 tan 40 tan 80=√3 を適当に拡張して証明せよ。
>
> を今度は出しておきます。これも即答されたりして。(私の数年間はいったい…)

増田さんの講演の title を御覧になれば分かるように, 多分
関係があるでしょうね.

# 必要でしたら, アブストラクトのコピーをお送りしましょうか.

# 拡張というのは何かなあ.
# tan 20°tan 40°tan 80°
# = (tan 20°tan 40°)/ tan 10°
# = 1 / tan 30°= √3
# は良いですが.
--
塚本千秋@応用数学.高分子学科.繊維学部.京都工芸繊維大学
Tsukamoto, C. : chi...@ipc.kit.ac.jp

shuuji yamamoto

unread,
Oct 17, 2002, 10:46:08 AM10/17/02
to
山本です。

会社で、ボスの目をぬすんでは計算してましたが、
なんだか、もう結果がでちゃったみたいですね。

計算中に思ったんですが、

一般に、
tanα = tan(2α) * tan(3α) * tan(4α)
を満たすような整数αは、10以外にもあるのだろうか?


In article <ao3u79$8ua$2...@news1.synapse.ne.jp>, w...@po4.synapse.ne.jp says...

--
-----------------------
shuuji yamamoto
yama...@k3.dion.ne.jp
-----------------------

Ito Kazumitsu

unread,
Oct 17, 2002, 6:37:29 PM10/17/02
to
yama...@k3.dion.ne.jp (shuuji yamamoto) writes:

> 一般に、
> tanα = tan(2α) * tan(3α) * tan(4α)
> を満たすような整数αは、10以外にもあるのだろうか?

別に整数 (単位は度)に限定する必要はないと思いますが、

α = 0°,±10°,±50°,±70°

および、これらに 180°の整数倍を加えたものに限ると
考えます (参照: <wkadlk6...@hjavd.htk.hitachi-cable.co.jp>)。

--
*******************************************************************
Ito Kazumitsu

M_SHIRAISHI

unread,
Oct 17, 2002, 5:14:21 AM10/17/02
to

Wakamtu kazuhiro wrote:

若松といいます。ここではクイズもいいようですから私が悩んだ問題を。

以下の式を証明してください。
tan 20 tan 30 tan 40 = tan 10

 証明)  左辺 = tan(30°- 10°)tan30°tan(30°+ 10°)

                         tan30°- tan10°              tan30°+ tan10°
         = ―――――――――  tan30°―――――――――
            1 + tan30°tan10°              1 -tan30°tan10°

                               ( tan^2 30°- tan^2 10°)
         = tan30°――――――――――――― = P    と置く。
                                      ( 1 - tan^2 30°tan^2 10°)

                                                            1
            ここで、 tan30°=   ――   であるから、
                                                          √3

                                     1  ( 1 - 3 tan^2 10°)
                      P  =   ――――――――――――
                                    √3    ( 3 - tan^2 10°)
 

     ところで、正接(タンジェント)に関しては、「3倍角の公式」として、

                         tanθ( 3 ― tan^2 θ )
      一般に、 tan3θ = ―――――――――――   が成立する故、
                       1- 3 tan^2 θ

                  tan3θ(1- 3 tan^2 θ)
                ――――――――――――   = tanθ
                     3 ― tan^2 θ

                       この式に θ = 10°を代入して、

                                       1 ( 1 - 3 tan^2 10°)
                                   ―――――――――――  = tan10°
                 √3   ( 3 - tan^2 10°)
 

                    しかるに、上式の左辺は P に他ならない。
 

           よって、 tan20°tan30°tan40°= tan10° ■
 
 

注意1) 任意の角度について tan2θtan3θtan4θ= tanθ が成立するワケ
      ではないので、単に加法定理を使うだけでは、証明できない。
          ( この証明問題の“難しさ”の1つが ここにある?)
 

注意2) 正接(タンジェント)に関しての「3倍角の公式」は、加法定理を繰り返し
      使うことによって、容易に得られる。

“大先生”の御教え:? 教科書に載っていない公式は、自分で発見すべし。ヽ(^。^)ノ

    
 

M_SHIRAISHI @The_New_York_Academy_of_Sciences

http://www.apionet.or.jp/~eurms/Ronri_Kaikaku.html
 
 

M_SHIRAISHI

unread,
Oct 17, 2002, 11:52:47 AM10/17/02
to
# 殆んど、茶々。 ヽ(^。^)ノ ヽ(^。^)ノ


shuuji yamamoto wrote:

> tanα = tan(2α) * tan(3α) * tan(4α)
> を満たすような整数αは、10以外にもあるのだろうか?

無限に存在するワな。

10°, 190°, 370°, 550°, 730°, 910°, ・・・・

i...@htk.hitachi-cable.co.jp

unread,
Oct 18, 2002, 8:36:46 AM10/18/02
to
w...@po4.synapse.ne.jp (Wakamtu kazuhiro) writes:

> (3)円分体の整数論を用いた大学生レベルの回答。

それほど立派なものではありませんが、一応 1の36乗根を用いた
解答ができました。

複素数 z に対し、その共役複素数を z~、偏角を θとすると、

tanθ = = i(z~-z) / (z~+z) = i(1-z^2) / (1+z^2)

である。

以後簡単のため、

z^n + z^m + ... z^p

という式を

[n m ... p]

と表わすことにする (複素数 z は固定されているものとする)。

ここで z として 1の36乗根 cos10°+ i sin10°を取る。

-z^n = z^(n+18) に注意すれば、証明すべき式
tanθ = tan2θtan3θtan4θ は次と同値である。


i[0 20]/[0 2] = (i[0 22]/[0 4])(i[0 24]/[0 6])(i[0 26]/[0 8])

[0 20][0 4][0 6][0 8] + [0 2][0 22][0 24][0 26] = 0

[0 8 6 14 4 12 10 18 20 28 26 34 24 32 30 2]
+ [0 26 24 14 22 12 10 0 2 28 26 16 24 14 12 2] = 0

ここで、z^n + z^(n+18) = 0, z^n + z^(n+12) + z^(n+24) = 0 に
注意して項の消し込みを行なえば、この式が確かに成立している
ことが確かめられる。

--
********************
Ito Kazumitsu

ito.ka...@htk.hitachi-cable.co.jp

unread,
Oct 18, 2002, 9:14:40 AM10/18/02
to
w...@po4.synapse.ne.jp (Wakamtu kazuhiro) writes:

> 問:tan 20 tan 40 tan 80=√3 を適当に拡張して証明せよ。

拡張のしかたは思いつきませんが、
<wkfzv33...@hjavd.htk.hitachi-cable.co.jp> と同様に

tan 20° tan 40° tan 80°= tan 60°

[0 12][0 22][0 26][0 34] + [0 30][0 4][0 8][0 16] = 0

[0 34 26 24 22 20 12 10 12 10 2 0 34 32 24 22]
+ [0 16 8 24 4 20 12 28 30 10 2 18 34 14 6 22] = 0

0 = 0

--
********************
Ito Kazumitsu

i...@htk.hitachi-cable.co.jp

unread,
Oct 18, 2002, 10:05:23 AM10/18/02
to
w...@po4.synapse.ne.jp (Wakamtu kazuhiro) writes:

> 問:tan 20 tan 40 tan 80=√3 を適当に拡張して証明せよ。

<wkfzv33...@hjavd.htk.hitachi-cable.co.jp> の記法によると、
p, q, r, s を整数として

tan q*10° tan r*10° tan s*10°= tan p*10°

[0 2p][0 2q+18][0 2r+18][0 2s+18] + [0 2p+18][0 2q][0 2r][0 2s] = 0

[0 2s+18 2r+18 2r+2s
2q+18 2s+2q 2r+2q 2r+2s+2q+18
2p 2p+2s+18 2p+2r+18 2p+2r+2s
2p+2q+18 2p+2q+2s 2p+2q+2r 2p+2q+2r+2s+18]

+[0 2s 2r 2r+2s
2q 2q+2s 2q+2r 2q+2r+2s
2p+18 2p+2s+18 2p+2r+18 2p+2r+2s+18
2p+2q+18 2p+2q+2s+18 2p+2q+2r+18 2p+2q+2r+2s+18] = 0

[0 2r+2s 2s+2q 2r+2q 2p+2s+18 2p+2r+18 2p+2q+18 2p+2q+2r+2s+18] = 0

ここで、(p,q,r,s)=(6,2,4,8) の場合

[0 2r+2s 2s+2q 2r+2q 2p+2s+18 2p+2r+18 2p+2q+18 2p+2q+2r+2s+18] = 0

[0 24 20 12 10 2 34 22] = 0

[0 24 12] + [20 2] + [10 34 22] = 0

Ito Kazumitsu

unread,
Oct 18, 2002, 1:18:15 PM10/18/02
to
i...@htk.hitachi-cable.co.jp writes:

> 複素数 z に対し、その共役複素数を z~、偏角を θとすると、
>
> tanθ = = i(z~-z) / (z~+z) = i(1-z^2) / (1+z^2)

書き忘れていますが、z の絶対値は 1 つまり z~z = 1 と
します。

--
Ito Kazumitsu

Wakamtu kazuhiro

unread,
Oct 19, 2002, 8:00:01 AM10/19/02
to
若松です。

下記のようなメールをいただきました。(メールヘッダは大幅に省略)
ありがとうございます。

----
Subject: Re: tan 20 tan30 tan 40 = tan10 (degree)
From: "Dr.Sc.KAWAMOTO,Takuji (Ext)" <kawa...@miln.mei.co.jp>
Message-Id: <200210181710...@miln.mei.co.jp>
Date: Fri, 18 Oct 2002 17:10:07 +0900 (JST)


松下電器情報システム名古屋研究所の川本といいます。
ニュース投稿が出来ないので、直接メールします。
必要なら、ニュースにフォワードしてください。

1) tan20°tan30°tan40°=tan10°の証明

タンジェントの加法定理を何度も使うと、2倍角の公式、3倍角の公式、4倍角の公式が導けます。
tan10°=x と置いて、これらの公式を使うと、

tan20°= 2x/(1-x^2) ..................... 式1
tan30°= (3x-x^3)/(1-3x^2) .............. 式2
tan40°= (4x-4x^3)/(1-6x^2+x^4) ......... 式3

が得られます。

ここで、

tan30°=1/√3 ........................... 式2'

に注目し、2式の分母を払うと、x^3=√3x^2+3x-1/√3 という式が得られます。
これを使って、式3の分母の次数を次々落してゆくと、式3の分母は8x/√3になります。
式3の分子、分母が共通因子 x を持つことになりますから、分子、分母をxで割って
整理すると、

tan40°= √3(1-x^2)/2 ................... 式3'

が得られます。

最後に、式1、式2'、式3'をかけ算すると、これが sin10°になることがわかります。


2) tan20°tan40°tan80°=√3 の証明

tan20°=y と置いて、2倍角の公式、3倍角の公式、4倍角の公式を使うと、

tan40°= 2y/(1-y^2) ..................... 式1
tan60°= (3y-y^3)/(1-3y^2) .............. 式2
tan80°= (4y-4y^3)/(1-6y^2+y^4) ......... 式3

が得られます。

ここで、

tan60°=√3 ............................. 式2'

に注目し、2式の分母を払うと、y^3=3√3y^2+3y-√3 という式が得られます。
これを使って、式3の分母の次数を次々落してゆくと、式3の分母は 24y^2+8√3y-8 になります。

tan40°= (y-y^3)/(6y^2+2√3y-2) ......... 式3'

が得られます。

最後に、y、式1、式3'をかけ算し、y^3=3√3y^2+3y-√3 を使ってもういちど次数を落すと、
これが √3 になることがわかります。


川本 琢二 (Dr.Sc.KAWAMOTO,Takuji)
(株)松下電器情報システム名古屋研究所
E-mail kawa...@miln.mei.co.jp

----
他回答を下さったみなさんありがとうございます。
それらをみて、まじめに計算すれば高校数学でも十分に解答可能な問題だということと、
私は根性が足りないことがよくわかりました。反省しております。

(意外と大学受験問題あたりにもいいかも。私は時間内に解けなさそうだけど)

--
ひとは「信じられるものだけを信じる」ことができますね。

Ito Kazumitsu

unread,
Oct 19, 2002, 12:04:19 PM10/19/02
to
i...@htk.hitachi-cable.co.jp writes:

> <wkfzv33...@hjavd.htk.hitachi-cable.co.jp> の記法によると、
> p, q, r, s を整数として

> tan q*10° tan r*10° tan s*10°= tan p*10°
> ⇔

> [0 2r+2s 2s+2q 2r+2q 2p+2s+18 2p+2r+18 2p+2q+18 2p+2q+2r+2s+18] = 0

これに関連して添付のようなプログラムを Ruby で作ってみました。

・[p q ... s] 形式の和と積を求める電卓機能
・tan p*10°= tan q*10° tan r*10° tan s*10°型の定理の証明装置
・tan p*10°= tan q*10° tan r*10° tan s*10°型の定理の発見装置

実行例
----------------
電卓機能: [0 12][0 22][0 26][0 34] + [0 30][0 4][0 8][0 16] の計算

$ ruby a.rb
+[0 12]
*[0 22]
*[0 26]
*[0 34]
p


[0 34 26 24 22 20 12 10 12 10 2 0 34 32 24 22]

[26 32]
c
+[0 30]
*[0 4]
*[0 8]
*[0 16]
p


[0 16 8 24 4 20 12 28 30 10 2 18 34 14 6 22]

[8 14]
+[26 32]
p
[8 14 26 32]
[]
----------------
tan 10°= tan 20°tan 30°tan 40°の証明
$ ruby a.rb
X 1 2 3 4
[0 14 12 10 28 26 24 2]
[]
----------------
tan p*10°= tan q*10° tan r*10° tan s*10°型の定理の発見
$ ruby a.rb
F
1 2 3 4
1 2 3 22
1 2 4 21
1 2 11 17
1 2 11 35
1 2 14 15
1 2 14 33
1 2 15 32
1 2 17 29
1 2 21 22
以下略

tan 40°= tan 10° tan 60° tan 70°

などの定理が続々と発見できます。

添付プログラム (言語: Ruby)

class A

def initialize(a)
@a = Array.new
a.each{|x|
@a.push(x.to_i % 36)
}
end

def print
@a.join(' ')
end

def add(b)
@a = @a + b.a
end

def multiply(b)
x = b.a
y = Array.new
@a.each{|n|
x.each{|m|
y.push((n+m)%36)
}
}
@a = y
end

def clean18
deli = -1
delj = -1
while true
i = -1
while (i += 1) < @a.size
j = i
while (j += 1) < @a.size
if (@a[i] - @a[j]) == 18 or (@a[i] - @a[j]) == -18
deli = i
delj = j
break
end
end
break if deli >= 0
end
if deli >= 0
@a.delete_at(delj)
@a.delete_at(deli)
deli = delj = -1
else
break
end
end
end

def clean12
deli = -1
delj = -1
delk = -1
while true
i = -1
while (i += 1) < @a.size
j = i
while (j += 1) < @a.size
k = j
while (k += 1) < @a.size
if ((@a[i] - @a[j]) % 36 == 12 and \
(@a[j] - @a[k]) % 36 == 12 and \
(@a[k] - @a[i]) % 36 == 12) or \
((@a[j] - @a[i]) % 36 == 12 and \
(@a[k] - @a[j]) % 36 == 12 and \
(@a[i] - @a[k]) % 36 == 12)
deli = i
delj = j
delk = k
break
end
end
break if deli >= 0
end
break if deli >= 0
end
if deli >= 0
@a.delete_at(delk)
@a.delete_at(delj)
@a.delete_at(deli)
deli = delj = delk = -1
else
break
end
end
end

def clean
clean18
clean12
end

attr_reader(:a)

end

a = A.new([])
while true
gets
break if $_=~/^e/
if $_ =~ /^p/
printf ("[%s]\n", a.print)
a.clean
printf ("[%s]\n", a.print)
STDOUT.flush
next
end
if $_ =~ /^c/
a = A.new([])
next
end
if $_ =~ /^[\*x]\[(.*)\]/
a.multiply(A.new($1.split))
next
end
if $_ =~ /^\+\[(.*)\]/
a.add(A.new($1.split))
next
end
if $_ =~/^X +(\d+) +(\d+) +(\d+) +(\d+)/
p=$1.to_i; q=$2.to_i; r=$3.to_i; s=$4.to_i
p *= 2; q *= 2; r *= 2; s*=2
a = A.new([0, (r + s), (s + q), (r + q), (p + s + 18), (p + r + 18), (p + q + 18), (p + q + r + s + 18)])
printf ("[%s]\n", a.print)
a.clean
printf ("[%s]\n", a.print)
STDOUT.flush
next
end
if $_ =~/^F/
(1..35).each{|p|
next if p % 9 == 0
p2 = p * 2
(1..35).each{|q|
next if q % 9 == 0
next if q == p or (q - p) % 36 == 18
q2 = q * 2
(q..35).each{|r|
next if r % 9 == 0
next if r == p or (r - p) % 36 == 18
r2 = r * 2
(r..35).each{|s|
next if s % 9 == 0
next if s == p or (s - p) % 36 == 18
s2 = s * 2
a = A.new([0, (r2 + s2), (s2 + q2), (r2 + q2), (p2 + s2 + 18), (p2 + r2 + 18), (p2 + q2 + 18), (p2 + q2 + r2 + s2+ 18)])
a.clean
if a.a.empty?
printf ("%d %d %d %d\n", p, q, r, s)
STDOUT.flush
end
}}}}
next
end

end

--
Ito Kazumitsu

M_SHIRAISHI

unread,
Oct 19, 2002, 12:07:06 PM10/19/02
to

Wakamtu kazuhiro wrote:

> まじめに計算すれば高校数学でも十分に解答可能な問題だということと、
> 私は根性が足りないことがよくわかりました。反省しております。
>
> (意外と大学受験問題あたりにもいいかも。私は時間内に解けなさそうだけど)

最初、問題を見た時は、「左辺を加法定理で展開して整理すれば、簡単に解ける
問題じゃない」と思ったのでしたが、実際に展開して整理してみても、右辺には
到達しないので、正直、私は、「だいぶ、まごつかされました。」  ヽ(^。^)ノ


Ito Kazumitsu

unread,
Oct 19, 2002, 10:04:24 PM10/19/02
to
Ito Kazumitsu <k...@ph.maczuka.gcd.org> writes:

> tan p*10°= tan q*10° tan r*10° tan s*10°型の定理の発見
>

> tan 40°= tan 10° tan 60° tan 70°
>
> などの定理が続々と発見できます。

しかし、tan 40°= tan 10° tan 60° tan 70°は
tan 10°= tan 20° tan 30° tan 40°と同じことなのに、
このプログラムは、自分で発見した既知の定理も再発見して
しまいます。

無駄を排除するようにプログラムを改良することにします。

tan p*10°tan q*10° tan r*10° tan s*10°= 1 という
定理を発見すればよいはずです。

tan p*10°tan q*10° tan r*10° tan s*10°= 1

[0 2p+18][0 2q+18][0 2r+18][0 2s+18] = [0 2p][0 2q][0 2r][0 2s]

[0 2p+18 2q+18 2p+2q][0 2r+18 2s+18 2r+2s]
= [0 2p 2q 2p+2q][0 2r 2s 2r+2s]

[0 2p+18 2q+18 2p+2q
2r+18 2p+2r 2q+2r 2p+2q+2r+18
2s+18 2p+2s 2q+2s 2p+2q+2s+18
2r+2s 2p+2r+2s+18 2q+2r+2s+18 2p+2q+2r+2s]
=
[0 2p 2q 2p+2q
2r 2p+2r 2q+2r 2p+2q+2r
2s 2p+2s 2q+2s 2p+2q+2s
2r+2s 2p+2r+2s 2q+2r+2s 2p+2q+2r+2s]

[2p+18 2q+18
2r+18 2p+2q+2r+18
2s+18 2p+2q+2s+18
2p+2r+2s+18 2q+2r+2s+18]
=
[2p 2q
2r 2p+2q+2r
2s 2p+2q+2s
2p+2r+2s 2q+2r+2s]

[2p 2q
2r 2p+2q+2r
2s 2p+2q+2s
2p+2r+2s 2q+2r+2s] = 0

(∵ [2p+18 2q+18
2r+18 2p+2q+2r+18
2s+18 2p+2q+2s+18
2p+2r+2s+18 2q+2r+2s+18]
= - [2p 2q
2r 2p+2q+2r
2s 2p+2q+2s
2p+2r+2s+18 2q+2r+2s])

また、たとえば p=q, r=s のような場合、2つの角が補角の場合、
2つの角が鈍角の場合はつまらないケースなので排除します。

このように無駄を排除したプログラムで定理を発見してみると

$ ruby a.rb
F
1 5 6 7
2 3 4 8

という2つの場合しか出てきません。つまり

tan10°tan50°tan60°tan70°= 1
(⇔ tan10°= tan20°tan30°tan40°, etc.)

tan20°tan30°tan40°tan80°= 1
(⇔ tan20°tan40°tan80°= tan60°, etc.)

だけが、自明でなくおもしろいケースとわかります。

改良したプログラム

class A

attr_reader(:a)

end

(1..17).each{|p|
next if p == 9


p2 = p * 2

(p..17).each{|q|
next if q == 9


q2 = q * 2

(q..17).each{|r|
next if r == 9


r2 = r * 2

(r..17).each{|s|
next if s == 9


s2 = s * 2

next if (p==q and r==s)
next if ((p+q)%9 == 0 or (p+r)%9 == 0 or (p+s)%9 == 0)
next if r > 9 and s > 9
a = A.new([p2, q2, r2, s2, p2+q2+r2, p2+q2+s2, p2+r2+s2, q2+r2+s2])

MUNEMOTO Hisaya

unread,
Oct 20, 2002, 7:32:37 AM10/20/02
to
In article <87adl97...@ph.maczuka.gcd.org>,

Ito Kazumitsu <k...@ph.maczuka.gcd.org> wrote:
> しかし、tan 40°= tan 10° tan 60° tan 70°は
> tan 10°= tan 20° tan 30° tan 40°と同じことなのに、

であるならば、

> tan10°tan50°tan60°tan70°= 1
> (⇔ tan10°= tan20°tan30°tan40°, etc.)
>
> tan20°tan30°tan40°tan80°= 1
> (⇔ tan20°tan40°tan80°= tan60°, etc.)
>
> だけが、自明でなくおもしろいケースとわかります。

の二つも私は同じことのように思うのですが???

tan20°tan30°tan40°tan80°= 1

⇔ tan20°tan40°tan40°= 1/tan80°= tan10°

hi...@eve.u-ryukyu.ac.jp 宗本久弥

F.K.

unread,
Oct 20, 2002, 7:44:57 AM10/20/02
to
F.K.と申します.

"Ito Kazumitsu" <k...@ph.maczuka.gcd.org> wrote in message
news:87adl97...@ph.maczuka.gcd.org...


> tan p*10°tan q*10° tan r*10° tan s*10°= 1

> また、たとえば p=q, r=s のような場合、2つの角が補角の場合、
> 2つの角が鈍角の場合はつまらないケースなので排除します。

「補角」は「余角」のミスでしょうか?

> 1 5 6 7
> 2 3 4 8

> だけが、自明でなくおもしろいケースとわかります。

この2つは逆数ですから,本質的に同じものですね.

ところで,鋭角を考えれば十分ですから,
 0<p<q<r<s<9
とすると,余角2組の場合に方程式を満たすことと,
 (p,q,r,s)=(1,5,6,7),(2,3,4,8)
が解であること,およびtanの増加性だけで,他に解がないことが分かります.

ただし,p,q,r,sのなかに等しいものがある場合は,いくつか具体的に解でない
ことを確かめなければならないようですが.

0 new messages