|
ベルク・カッツェ |
|
三辺の長さを□、□+△、□+△+△とすると、三角形になるには□>△である必要がある。
□=2から33まではそれぞれ△が1通りから32通り。 □=34から97は、それぞれ△が32、32、31、31、・・・2、2、1、1通りなので (1+32)×32÷2×3=1584通り。 |
|
11月24日(木) 0:10:32
45543 |
|
ヤッコチャ |
| 正三角形は入らないということで、1584。正三角形ありなら1683。ありならひっかかりますね(汗 |
|
11月24日(木) 0:18:29
45544 |
|
ゴンとも |
|
十進Basic で AB=c,AC=b,BC=aとして for c=1 to 99 for b=c+1 to 99 for a=b+1 to 99 if a-b<>b-c or b+c<=a then goto 10 let s=s+1 10 next a 20 next b 30 next c print s end f9押して 1584・・・・・・(答え) <100なのに99でなく100としていて遅れました。2分くらいでできた問題だったのですが・・・ |
|
豊川市
11月24日(木) 0:32:41
45545 |
|
今年から高齢者 |
|
足し算に手間取りました。最後はエクセルで足し算した。
AB=aとする。差がa以上になると三角形ができない。 その上で、BCは100未満なので、aは99-2*差までが三角形ができる範囲なので 差が1の時、a=2〜97が可能。 差が2なら、a=3〜95が可能。 差が1増える毎に3減る。 96+93+90+....3=1584 |
|
11月24日(木) 0:39:02
45546 |
|
和っしゃん |
|
三角形の成立条件は、最大辺<他の二辺の和 より、
最大辺をx、長さの差をyとおくと、 (x-y)+(x-2y)>x したがってx>3y y=1 の時、x≧4 xは1〜99の整数だから これをみたすxの値は 96個 y=2 の時、 x≧7 から 93個 ... y=32 の時、 x≧97 から 3個 よって、求める三角形の個数は、 96+93+90+...+6+3=99×16=1584 |
|
愛知県
11月24日(木) 0:30:41
45547 |
|
みかん |
|
最長が4の時 (2・3・4)
最長が5の時 (3・4・5) 最長が6の時 (4・5・6) 最長が7の時 (5・6・7) (3・5・7) …といった具合にとりあえず調べると、 最長が4、5、6の時 各1通り →計3 最長が7、8、9の時 各2通り →計6 最長が10、11、12の時 各3通り →計9 (中略) 最長が97、98、99の時 各32通り 計96 のような規則性であると分かる。 あとは初項3、公差3の等差数列を96まで足し合わせればいいだけ。 (3+96)×32÷2=1584 が答え。 |
|
11月24日(木) 1:14:24
45549 |
|
kyorofumi |
|
count = 0;
for ab = 1:99 for ac = ab:99 for bc = ac:99 if ab < ac && ac < bc if (ab+ac) > bc && abs(bc-ac) == abs(ac-ab) count = count+1; end end end end end |
|
11月24日(木) 0:32:27
45550 |
|
紫の薔薇の人 |
|
AB=x,AC=x+a,BC=x+2a
とおくと、三角形ができる条件は、 AB+AC>BCだから、 x≧1かつ、1≦a≦x-1かつ、x+2a≦99となる整数(x,a)の組み合わせを数えることに。 x=1のとき、aはなし 2≦x≦33のとき、a=1〜x-1 34≦x≦97のとき、a=1〜[(99-x)/2] 98≦xのとき、aはなし だから、 場合の数=1+2+・・・+32+32+32+・・・・+1+1 =(1+32)*32/2*3 =1584 |
|
11月24日(木) 0:35:51
45552 |
|
kyorofumi |
|
you didn't need the if condition...
count = 0; for ab = 1:99 for ac = ab+1:99 for bc = ac+1:99 if (ab+ac) > bc && abs(bc-ac) == abs(ac-ab) count = count+1; end end end end |
|
11月24日(木) 0:36:16
45553 |
|
Mr.ダンディ |
|
3辺は等差数列をなし、等差が最大辺の1/3未満であれば三角形が出来るので
等差が1のものは 最大辺が4〜99の 96通り 等差が2のものは 最大辺が7〜99の 93通り 等差が3のものは 最大辺が10〜99の 90通り ・・・ 等差が32のものは 最大辺が97〜99の 3通り よって 3+6+・・+96=3*(32*33)/2=1584 (通り) と考えました。 |
|
11月24日(木) 0:44:19
45554 |
|
スモークマン |
|
差が等しいのでした…^^;;
99-a+99-2a>=100 2*99-(99+1)>=3a・・・98/3=32>=a・・・32 2*98-(98+1)>=3a・・・97/3=32>=a … 2*k-(k+1)>=3a・・・(k-1)/3>=a k-1+k-2=k+1・・・k=4 k=4〜99 3〜98・・・(32+…+1)*3=16*33*3=1584 さいしょ… ありうる△の数を… 96+95+…+2 =96*97/2-1 =4655 なんて...^^;; |
|
11月24日(木) 0:46:31
45555 |
|
Jママ |
|
こんばんは
時間を忘れてました(^_^;) みかんさんと同様に規則性を調べて計算しました。 |
|
11月24日(木) 1:07:02
45556 |
|
あめい |
| #45549みかんさんと同じく、幾つか調べて3つずつ1通りから32通りまでの通りがある(だろうという)規則性をみつけ計算しました。 |
|
お馬崎
11月24日(木) 1:07:20
45557 |
|
ゴンとも |
|
#45545
自己レスですいません十進Basic でソースコードが少し短くなり for c=1 to 99 for b=c+1 to 99 for a=b+1 to 99 if a-b=b-c and b+c>a then let s=s+1 next a next b next c print s end XMaxima では3行でした。 j:0$for c:1 thru 99 do for b:c+1 thru 99 do for a:b+1 thru 99 do (if a-b=b-c and b+c>a then j:j+1)$j; エンター押して 1584・・・・・・(答え) |
|
豊川市
11月24日(木) 1:32:45
MAIL:fttnm528@ybb.ne.jp 45558 |
|
mun |
|
おはようございます。
AC-AB=BC-AC=sとおくと、 0<AB, AB+2s<100. 三角形になる⇔AB+AC>BCだから、 AB+(AB+s)>AB+2s.解いてAB>s. 以上から、 ・s=nのとき、xはn+1から99-2nの値、つまり99-3n通りの値をとる ・1≦s≦32 が分かります。よってΣ^32_{n=1}(99-3n)=1584.としました。 |
|
11月24日(木) 6:39:32
45559 |
|
ハラギャーテイ |
| すみません プログラムです |
|
11月24日(木) 8:38:19
45561 |
|
にこたん |
|
AB=a
差をb BC<AB+ACよりa>b BC<100よりa+2b<100よってb≦32 b=1でa=2,3,...,97 b=2でa=3,4,...,95 ... ... b=32でa=33,34,35 3つずつ減る 総和は3+6+9+...+96=��3i(1≦i≦32)=3×32×33÷2=1584 |
|
11月24日(木) 10:01:13
MAIL:nikotan@fat.coara.or.jp 45562 |
|
??? |
|
k=0
for a=3 to 99 for b=2 to a-1 c=2*b-a k=k-(1<=c and c<b and abs(a-b)<c and c<a+b) next next msgbox k |
|
11月24日(木) 10:51:41
45563 |
|
巷の夢 |
| #45554 Mr.ダンディ様と全く同じ考え方でやりましたが、最初は分からず、色々と書き出し、試行錯誤の末やっとこの考えに至りました。疲れました。 |
|
11月24日(木) 10:57:46
45564 |
|
uchinyan |
|
はい,こんにちは。さて,今回の問題は...
今回は図形の顔をした場合の数でしたね。 これもコツコツ調べれば規則性が見えるので,算チャレとしては標準的かやや易かな。 ただ,キチンと論理的に解こうとすると数学ぽくなってしまうようです。こんな感じで。 BC - AC = AC - AB = ○ cm,とします。○は 1 以上の整数です。 すると,AC = AB + ○,BC = AC + ○ = AB + ○ * 2,で, BC < 100,より,AB + ○ * 2 <= 99 < 100,AB <= 99 - ○ * 2,です。 一方で,三角形のできる条件より,BC - AB < AC,なので,○ * 2 < AB + ○,○ < ○ + 1 <= AB,です。 これら2つの条件より,○ + 1 <= AB <= 99 - ○ * 2,となり,このとき,1 <= ○ <= 32,です。 そして,この条件の下の AB,AC,BC で,三角形が1つ決定します。 そこで,○ = 1 〜 32 に対して AB は,(99 - ○ * 2) - (○ + 1) + 1 = 99 - ○ * 3 通り,存在するので, 全部で,96 + 93 + 90 + … + 9 + 6 + 3 = ((96 + 3) * 32)/2 = 1584 通り,になります。 より算数的には,○を 1, 2, 3, … と具体的に調べて 99 - ○ * 3 の規則性を見つける,といったところでしょうか。 別解というほどのものでもないですが,こんな風に考えてもいいですね。 BC - AC = AC - AB,より,AC = (AB + BC)/2,となり,AB と BC は,両方とも奇数又は両方とも偶数,です。 また,三角形のできる条件より,BC - AB < AC = (AB + BC)/2,なので,BC/3 < AB,がいえます。 これら2つの条件より, BC/3 < AB < AC = (AB + BC)/2 < BC < 100,AB と BC は,両方とも奇数又は両方とも偶数, です。そこで,BC を 3 〜 99 で動かして調べると, 03 04 05 06 07 08 09 … 90 91 92 93 94 95 96 97 98 99 <--- BC 02 02 02 03 03 03 04 … 31 31 31 32 32 32 33 33 33 34 <--- AB の最小値 00 01 01 01 02 02 02 … 29 30 30 30 31 31 31 32 32 32 <--- 可能な場合の数 ここまで書かなくとも規則性はすぐに分かりますね。 結局,(1 + 2 + 3 + … + 30 + 31 + 32) * 3 = (32 * 33)/2 * 3 = 1584 通り,になります。 こちらもより数学的に書くこともできますが, 6 の余りで場合分けになりそうで,若干面倒になりそうです。 |
|
11月24日(木) 13:24:27
45565 |
|
uchinyan |
|
掲示板を読みました。
注意 以下の記述は,そもそもは私自身の勉強のメモに過ぎないのですが, 折角なのでご参考までにと思って公開するものです。 そういうこともあって,解法の分類は算チャレの F.A.Q. の「算数の範囲」の記述を参考に, 私個人が独断と偏見で主観的に行っているものであって,客観的なものではありません。 あくまでもご参考です。悪しからず。 かなり数学ぽいのもありますが,そこは目をつぶりました。 また,式の扱い方,論理の運び方などには,それぞれバリエーションがあります。 #45543,#45552 三角形の3辺を,□,□ + △,□ + △ + △,とおいて,三角形成立条件と□の範囲とから調べる解法。 #45546,#45547,#45554,#45559,#45562,#45564,#45565の前半,#45568 BC - AC = AC - AB = ○ とおいて,三角形成立条件と○の範囲とから調べる解法。 #45549,#45555,#45556,#45557,#45565の後半 BC をその可能な範囲で動かし三角形成立条件とから調べる解法。 #45569 BC - AC = AC - AB = r とおくと三角形成立条件から 1 <= r < BC/3 がいえることから BC を動かして調べる解法。 #45546などと#45549などを合わせたような解法ですが,条件の絞り方がうまいな,と感心しました。 なお,BC = 3n-2,3n-1,3n のときはいずれも 1 <= r < n となるので BC = 3n の場合を考えて 3 倍すればよく, BC = 3n の場合は n = 1 〜 33 で条件を満たす r と n は単に 1 〜 33 から重複なしに2つを選べばいいので, 33C2 * 3 = (33 * 32)/2 * 3 = 1584 通り,と簡単に求められますね #45545,#45550,#45558,#45561,#45563 プログラムによる解法。 |
|
11月25日(金) 12:53:12
45566 |
|
イトーヨーカドー |
| イト-ヨーカドーにしようと思ったら焦って伊藤だにしてしまった。 |
|
11月24日(木) 15:36:45
45567 |
|
イトーヨーカドー |
| 差が1の時は96通り、2の時は93通り・・・というように等差数列でできました。 |
|
11月24日(木) 15:41:45
45568 |
|
にゃもー君 |
|
こんにちは。今回は暗算で一発正解だったのが嬉しかったです。
一番短い辺をA 一番長い辺をBとして、辺同士の差をrとする。 B=A+2r かつ1≦r<1/3B B=99(Bの最大値)のとき、条件を満たすrは1≦r≦32 32個 B=98 32個 B=97 32個 B=96のとき、条件を満たすrは、1≦r≦31 31個 ↓ B=3のとき、r=1 1個 このように、Bが3減るごとに、条件を満たすrの個数が1減っていく。 よって、三角形の総和は・・・ 32+32+32+31+31+31+30+30+30+…+1+1+1 3×32×33/2=1584通り 以上 |
|
さいたま市浦和区(自称)
11月24日(木) 19:01:16
45569 |
|
コーセージ |
| 三角形の成立条件を考え忘れ、惨敗です( ´△`) |
|
11月24日(木) 21:20:20
45570 |
|
おすまん |
| 正解しただけで満足です(^^; |
|
somewhere in the world
11月24日(木) 22:33:39
45571 |
|
物理好き |
|
#include<stdio.h>
int main(void){ int i,j,k,r=0; for(i = 1;i <= 97;i++){ for(j = i+1;j <= 98;j++){ for(k = j+1;k <= 99;k++){ if(k-j == j-i && i+j > k){r++;} } } } printf("%d\n",r); return 0; } 僕も三角形の成立条件を忘れていました^^; 2重まで抑えられるのですが今回は辺の長さが100、3重ループにしても高々100万回なのでこれで十分でしょう^^; |
|
大阪
11月30日(水) 21:39:47
HomePage:Twitter 45572 |