### Re: 52 flavours of triangle problems - fyi

by Hedley Pinsent -a) Tolerances:

Originally tolerances were set to 3% (angles and sides).

No problems have been detected with this for the sides.

However, with the angles, 180-160.4-10.4 may be taken by the student to be 180-160-10 = 10 instead of 9.2 - a about 8%

A constant 1 degree absolute tolerence fixes this.,

TOLERANCES FOR ANGLES NEED TO BE TREATED DIFFERENT FROM THAT OF SIDES.

Also, using the sine and cosine law, angles are determined by acos(ratio) , and asin(ratio). Upon reflection, and given the "student bill of rights" - three digits, the ratio can involve a value such as 100.5 that gets rounded to 100; this is one part in 200 or 5 parts in 1000. For a true value of asin(1) = 90 degrees, the student might calculate asin(0.995) = 84.3 degrees - an almost 6 degree discrepency.

Well this is only a second reason to stay away from 90 degrees (also 0 and 180), the first being that calculating a 90 degree angle when studying oblique triangles might just confuse the student.

The tolerances in the code below makes some adjustment as the angles approach 85 and 96 degrees (about 2.5 degrees tolerance). Without gettng too carried away it is an aproximation based on the derivatives of acos and asin.

All the tolerance stuff is located in the same place near the end.

b) What really caused a complete rewrite of the algorithms is when another instructor (teaching, basically, high school) said "I want simple - no complications". Translated this meant, for him, no obtuse angles.

Generally, the algorithms determine the two shorter sides; calculate the could-be hypotenuse; and then, for the third, longest side, stay away from it. A third side that is shorter than the hypotenuse gives acute angles; a third side longer than the hypotenuse gives an obtuse angle.

c) Drill problems:

Pythagorean Theorem

#1 Given LL find H

#2 Given HL find other L

#3 Given HL find other L

Student A says to student B ; add for #1 and subtract for #s 2 and 3

In the code below the randomness can be accomplished by writing the question as three parts of question 1. However, from the students point of view, he has done a lot of work to only have finished question 1.

We could say #1 random type; #2 random type ; #3 random type

In this case student A may get three questions of type: Given LL find H; and will always add for the rest of his life.

Student B may be given HL in all cases; this person will subtract for the rest of her life.

An idea that just may be too awkward: sky variables

Problems 1,2,3 (above) may have the same code

if (^@mylist does not exist){make a random list; put in in the sky}

$type = pop ^@mylist;

if ($type == 1){give the student LL}

if ($type == 2){give the student HL}

Code is attached