このディレクトリの索引

# 出典 :: 出されたお題をコーディングして罵られるスレ #295 # # お題 頂点座標から多角形の面積を求める # 頂点座標から多角形の面積を求める(_閉路をなす多角形の頂点座標ならび,_多角形の面積) :- '多角形の面積は iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計となる。(ただし Yn+1 = Y1 Y0 = Yn)'(_閉路をなす多角形の頂点座標ならび,_多角形の面積). '多角形の面積は iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計となる。(ただし Yn+1 = Y1 Y0 = Yn)'(_閉路をなす多角形の頂点座標ならび,_多角形の面積) :- 'ただし Yn+1 = Y1 Y0 = Yn'(_閉路をなす多角形の頂点座標ならび,_拡張した座標ならび), '多角形の面積は iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計の半分となる。'(_拡張した座標ならび,_多角形の面積). '多角形の面積は iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計の半分となる。'(_拡張した座標ならび,_多角形の面積) :- 'iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計の'(_拡張した座標ならび,S), _多角形の面積 is S / 2. 'iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計の'(_拡張した座標ならび,S) :- findsum(U,'iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の'(_拡張した座標ならび,U),S). 'iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の'(_拡張した座標ならび,U) :- append(_,[(_x1,_y1),(_x2,_y2),(_x3,_y3)|_],_拡張した座標ならび), U is _x2 * (_y3 - _y1). 'ただし Yn+1 = Y1 Y0 = Yn'([_0,_1|_残り座標ならび],_拡張した座標ならび) :- append([_0,_1|_残り座標ならび],[_0,_1],_拡張した座標ならび). findsum(_集約項,_目標,_合計) :- findall(_集約項,_目標,L), sum_list(L,_合計).