「プロジェクトオイラー問102」の編集履歴(バックアップ)一覧はこちら

プロジェクトオイラー問102」(2014/03/05 (水) 11:51:44) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%20102 *Problem 102 「三角形の包含」 † 2次元平面に三角形の座標が与えられるので、原点を含む三角形の数をこたえる問題。 詳細はリンク先参照のこと。 解法 2次元の外積の値で判断します。 それだけ。 check(T1,T2,T3):-T1=<0,T2=<0,T3=<0,!. check(T1,T2,T3):-0=<T1,0=<T2,0=<T3,!. isIns(Rows,1):- member([X1,Y1,X2,Y2,X3,Y3],Rows), T1 is X1*Y2-X2*Y1, T2 is X2*Y3-X3*Y2, T3 is X3*Y1-X1*Y3, check(T1,T2,T3). main102:- open('pe102.txt',read,IS), read_term(IS,Rows,[]), close(IS), findall(C,isIns(Rows,C),Count), length(Count,Ans), write(Ans).
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%20102 *Problem 102 「三角形の包含」 † 2次元平面に三角形の座標が与えられるので、原点を含む三角形の数をこたえる問題。 詳細はリンク先参照のこと。 解法 2次元の外積の値で判断します。 それだけ。 三角形のデータファイルはテキストエディタでPrologのリスト形式に変換してから読み込んだ。 check(T1,T2,T3):-T1=<0,T2=<0,T3=<0,!. check(T1,T2,T3):-0=<T1,0=<T2,0=<T3,!. isIns(Rows,1):- member([X1,Y1,X2,Y2,X3,Y3],Rows), T1 is X1*Y2-X2*Y1, T2 is X2*Y3-X3*Y2, T3 is X3*Y1-X1*Y3, check(T1,T2,T3). main102:- open('pe102.txt',read,IS), read_term(IS,Rows,[]), close(IS), findall(C,isIns(Rows,C),Count), length(Count,Ans), write(Ans).

表示オプション

横に並べて表示:
変化行の前後のみ表示: