ベルク・カッツェ
三辺の長さを□、□+△、□+△+△とすると、三角形になるには□>△である必要がある。
□=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