みかん
20個のうちから3点を選ぶ→20C3=1140通り
ここから一直線上に並ぶもの(1)〜(4)を引いていく。

(1)真横に一直線→5C3×4=40通り
(2)傾き1/2 or −1/2の直線上→1×4=4通り
(3)傾き1 or −1の直線上→1×4+4C3×4=20通り
(4)縦に一直線→4C3×5=20通り

以上より1140−(40+4+20+20)=1056通り。 
   8月1日(木) 0:18:36     40765
Mr.ダンディ
「簡単!」と 喜んで急ぐあまり数え漏れ。
1直線となる3点の組は
縦 (4C3)*5=20
横 (5C3)*4=40
斜め(傾き ±1) (1+4+4+1)*2=20
斜め(傾き ±1/2) 2*2=4
したがって (20C3)−(20+40+20+4)=1056  と求めました。  
【追記】みかんさんと 全く同じでしたね。(削除するまでもないかと残しておきます)
   8月1日(木) 0:56:41     40766

桂馬の動きの位置にある4つを見落としてましたorz

#40759
算数では倍数に0は入れないようです。
(T書籍の算数の教科書にはその旨の記述があったと思ひます)
第2グループ   8月1日(木) 0:31:02     40767
ようせん
20C3通りのうち一直線上にある場合を全て除く、というよくある方法です。

・・・が、苦戦したorz
   8月1日(木) 0:33:30     40768
あめい
久しぶりにさっとできました。求め方は前に書かれた方と全く同じです。
しかし、こういう問題こそみなさんがその手があったか〜というような求め方が出てくるのでしょうか?出てほしいなぁ。
   8月1日(木) 0:35:30     40769
あめい
「四角形は何個できるのでしょうか」にすると、むつかしくなりそうですね。
(求める気もなく、適当なことを言ってすいません。マサルさんならこの辺も検討されて三角形に落ち着かれたのではないかなどと・・・何となく思ってしまいました)
   8月1日(木) 0:44:50     40770
みかん
>Mr.ダンディさん(#40766
文字のみで書き込む都合で「C」や「傾き」などと書きましたが、やっていることは
算数の範囲内です。

図形問題ならば算数の範囲にとらわれなければいろいろな方法が出たりするものですが、
場合の数の分野で「具体的に何通りあるか?」という問題ではバリエーションが出にくいかも
しれませんね。
時々出題される「漸化式っぽく解く」のが算数と違うところでしょうか。
   8月1日(木) 2:12:18     40772
数樂
#40765, #40766さんと同じ
   8月1日(木) 2:17:31   HomePage:数樂  40773
数樂
ただ20C3以外は樹形図でやりました。
   8月1日(木) 2:19:24   HomePage:数樂  40774
通りすがり
プログラム例がないので。。。
十進BASICでやってみた(異なる3点が一直線上に並ばないものをカウントするだけの簡単なプログラム)。

DIM Pts(1 TO 20,1 TO 2)
FOR x = 1 TO 5
 FOR y = 1 TO 4
  LET n = n+1
  LET Pts(n,1) = x
  LET Pts(n,2) = y
 NEXT Y
NEXT X
FOR i = 1 TO 20
 FOR j = i + 1 TO 20
  FOR k = j + 1 TO 20
   IF (Pts(j,1)-Pts(i,1))*(Pts(k,2)-Pts(i,2))-(Pts(j,2)-Pts(i,2))*(Pts(k,1)-Pts(i,1)) <> 0 THEN LET Count = Count + 1
  NEXT K
 NEXT J
NEXT I
PRINT Count
END
   8月1日(木) 8:41:20     40775
???
エクセルのマクロ
最初、三角形の判定を、三角不等式|a−b|<c<a+bでやったのですが、だめでした。
辺の長さを求める際に、不正確な切り捨て計算をやってしまったのですね。
Option Explicit
'16(0,3) 17(1,3) 18(2,3) 19(3,3) 20(4,3)
'11(0,2) 12(1,2) 13(2,2) 14(3,2) 15(4,2)
'06(0,1) 07(1,1) 08(2,1) 09(3,1) 10(4,1)
'01(0,0) 02(1,0) 03(2,0) 04(3,0) 05(4,0)
Sub Macro1()
Cells(1, 1).Value = 0
Dim n1 As Integer, n2 As Integer, n3 As Integer
Dim n1x As Integer, n1y As Integer
Dim n2x As Integer, n2y As Integer
Dim n3x As Integer, n3y As Integer
For n1 = 1 To 20 - 2
n1x = xy(n1, 1): n1y = xy(n1, 2)
For n2 = n1 + 1 To 20 - 1
n2x = xy(n2, 1): n2y = xy(n2, 2)
For n3 = n2 + 1 To 20
n3x = xy(n3, 1): n3y = xy(n3, 2)
If (n2y - n1y) * (n3x - n2x) <> (n3y - n2y) * (n2x - n1x) Then
Cells(1, 1).Value = Cells(1, 1).Value + 1
Cells(Cells(1, 1).Value, 2).Value = Str(n1) + "(" + Str(n1x) + "," + Str(n1y) + ")"
Cells(Cells(1, 1).Value, 3).Value = Str(n2) + "(" + Str(n2x) + "," + Str(n2y) + ")"
Cells(Cells(1, 1).Value, 4).Value = Str(n3) + "(" + Str(n3x) + "," + Str(n3y) + ")"
End If
Next n3
Next n2
Next n1
End Sub
Private Function xy(ByVal n As Integer, ByVal j As Integer) As Integer
If j = 1 Then
xy = (n - 1) Mod 5
Else
xy = (n - 1) \ 5
End If
End Function
   8月1日(木) 10:45:53     40776
abcba@baLLjugglermoka
計算間違いして一回誤答を送ってしまいました。
三角形が出来ないパターンは、(5c3)×4+(4C3)×5+10×2+4=84

(20C3)−84=1056
   8月1日(木) 10:57:36     40777
uchinyan
はい,こんにちは。さて,今回の問題は...
これは,比較的よく類題を見る問題ですね。こんな感じで。

20 個の点から 3 個の点を選ぶのは 20C3 = (20 * 19 * 18)/(3 * 2 * 1) = 1140 通り。
しかし,このうちで一直線上に並ぶものは除きます。これは,
傾きが ±0 のものは,5C3 * 4 = 10 * 4 = 40 通り,
傾きが ±1/2 のものは,1 * 2 * 2 = 4 通り,
傾きが ±1 のものは,(1 + 4C3 + 4C3 + 1) * 2 = (1 + 4 + 4 + 1) * 2 = 20 通り,
傾きが ±∞ のものは,4C3 * 5 = 4 * 5 = 20 通り,
で,合計 40 + 4 + 20 + 20 = 84 通り。
そこで,三角形は 1140 - 84 = 1056 通り 作ることが出来ます。

なお,もちろん,算数では,傾きや ± は使えませんが,
図を使ってこれらを説明するのは容易なので,ここでは簡単のために使いました。
ネコの住む家   8月1日(木) 11:34:51   MAIL:uchi@sco.bekkoame.ne.jp   40778
uchinyan
掲示板を読みました。
今回は,皆さん,
20 個の点から 3 個の点を選ぶ場合の数から,3 点が一直線上にある場合を引く
という解法のようです。
ネコの住む家   8月1日(木) 11:53:20     40779
通りすがり
#40776
> 三角不等式|a−b|<c<a+bでやったのですが
距離の定義の1つであって、三角形の定義ではないかと。
   8月1日(木) 11:57:52     40780
マサル
この問題、実は....昭和32年の東大(なんと二次!)の入試問題だったりします。設定その他、すべて同じです。
会社   8月1日(木) 12:05:56   HomePage:算チャレ  40781
ようせん
C言語でも容易に計算できます

アルゴリズムとしては
&#9312;iを1〜20まで、jをi+1から20まで、kをj+1から20まで動かす
&#9313;i〜jのそれぞれの値を座標に変換する
&#9314;ベクトルの成分を用いた公式S=|ad-bc|/2によって三角形の面積を計算し、0でないものをカウントする
&#9315;カウントした値を表示
です。しっかり1056と表示されました。
   8月1日(木) 13:19:25     40782
ゴンとも
点の数を変えてできるように
三角形の3点を(a,b),(c,d),(e,f)
問題の点を横,縦の点の数ををそれぞれn1,n2として
十進basic で

INPUT n1,n2
let s=0
FOR a=0 TO n1-1
FOR b=0 TO n2-1
FOR c=0 TO n1-1
FOR d=0 TO n2-1
if a=c and b=d then goto 30
FOR e=0 TO n1-1
FOR f=0 TO n2-1
if e=a and f=b then goto 10
if e=c and f=d then goto 10
IF ABS((c-a)*(f-b)-(e-a)*(d-b))/2=0 THEN GOTO 10
let s=s+1
10 next f
20 next e
30 next d
40 next c
50 next b
60 next a
print s/6
END

f9押してn1,n2を4,5としてokをクリックして
? 4,5
1056・・・・・・(答え)

あとこのプログラムは他のサイトの自分のカキコを少しeditしただけなんですが今回は一直線上のものを除外で手で計算してもすぐだったので夜は手でやりました。
豊川市   8月1日(木) 18:08:36     40783
巷の夢
いやはや、ずっと3点を選び、3角形を作り、その個数は360にしかならず、何故入れないのか・・・・?昨日はあきらめ、本日、問題を再読するうちに、もしかして単純に3点を選び、直線となる場合を引くことを求めているのかなと・・・・。問題を恣意的に判断してしまった馬鹿さ加減にあきれております・・・。
真白き富士の嶺   8月2日(金) 8:08:22     40784
???
|a−b|<c<a+b

a>0かつb>0かつc>0かつa<b+cかつb<c+aかつc<a+b
は同値です。
   8月2日(金) 9:23:43     40785