"Number" (Comparison Method)
許容範囲に基づいて2つの数値を比較する.
詳細
- 数値比較法は,2つの数量が与えられた許容範囲を超えて数値的に異なっていないとき,両者が同等であるとみなす.
- 数値許容範囲は,通常,AssessmentFunctionのToleranceオプションを使って設定される.デフォルト値の0は,機械精度の差しか許容しない.
- デフォルトで,許容範囲は解答集の値と解答の間の絶対差と比較される.DistanceFunctionオプションを使って別の距離メトリックが指定できる.
- 解答集の複数の値が解答の許容範囲内にあるときは,最も近い値が選ばれる.
例題
すべて開くすべて閉じる例 (3)
数の比較問題のAssessmentFunctionを作成する:
数値近似が常に行われ,デフォルトで,機械精度のレベルで同等性がテストされる:
解答集の値がすべて数値のときは,自動的に"Number"が選択される.複数の正解がある問題の評価を定義する:
Toleranceが指定されていないと,解答集にない値は不正解になる:
スコープ (5)
各答は,別々に評価されてスコアが与えられる.デフォルトで,不正解があると結果全体が不正解になる:
"ListAssessment""AllElementsOrdered"を使って数の順序付けられたリストの評価関数を作成する.すべての値が答に含まれなければならない:
"ListAssessment""AllElementsOrderless"を使って数のリストの評価関数を作成する.すべての数が答に含まれなければならないが,その順序は問題ではない:
QuestionObjectで"Number"の比較を使用する:
QuestionGeneratorで"Number"の比較を使用する:
アプリケーション (1)
ランダム多項式のプロットから値を読み取るQuestionGeneratorを作成する:
特性と関係 (4)
評価は,たとえ許容範囲が0でも.厳密な値と厳密ではない値をマッチする:
数値近似が適用されない厳密なマッチの場合は,"ArithmeticResult"あるいは"Expression"を考えるとよい:
Toleranceを指定しないと,許容範囲は事実上$MachinePrecisionに基づく: