Formulas: More examples

Revision as of 16:50, 2 January 2018 by Dominique Bauer (talk | contribs) (Factorial)

Jump to: navigation, search

Significant figures

"The significant figures of a number are digits that carry meaning contributing to its measurement resolution." (Reference: https://en.wikipedia.org/wiki/Significant_figures).

The Formulas question has no built-in function to display numbers with a given number of significant figures. However, it is easy to work out this function as the following variable assignment which works with any real number:

xr=x==0?x:round(x*pow(10,nsf-1-floor(log10(abs(x)))),0)*pow(10,-nsf+1+floor(log10(abs(x))));

where x is the number to be rounded, nsf the number of significant digits to keep and xr the resulting rounded value.

Example

This example deals with the display of the correct answers with different numbers of significant figures.

The Formulas question should look like this:

Formulas201712310126.png

Play it   Login info  (Open in new tab: Ctrl+Shift+Click)

Example

This example is a significant figures drill.

General
  Question name!       Significant figures drill
Variables
  Random variables     # a     plus or minus sign
                       # b     exponent varying from -4 to 4 in steps of 0.01
                       # rnsf  random number of significant figures : 1, 2, 3, or 4
                       a={-1,1};
                       b={-4:4.01:0.01};
                       rnsf={1,2,3,4};
  Global variables     # nx    number x = ± 10^b
                       nx=a*pow(10,b);
                       # Rounding routine:
                       # x     number to round
                       # nsf   number of significant figures
                       # xr    rounded value of x
                       x=nx;
                       nsf=rnsf;
                       xr=x==0?x:round(x*pow(10,nsf-1-floor(log10(abs(x)))),0)*pow(10,-nsf+1+floor(log10(abs(x))));
Main question
  Question text!       Significant figures drill
Part 1
  Part's mark*         1
  Answer type          Number
  Answer*              xr
  Grading criteria*    Relative error < 0.0001
  Part's text          Number to round: {nx}
                       Number of significant digits to keep: {ncs}
                       Rounded number: {_0}
Combined feedback
  For any correct response
                       The correct answer is: {xr} 
  For any incorrect response
                       The correct answer is: {xr} 

In the Variables fields (random, global and local), lines starting with # are treated as comments.

It is always a good idea to document your work using comments in the Variable fields.

In this example, values to be rounded range from -10 000 to +10 000. In order to have the same number of values in each order of magnitude, hence a more interesting exercise, the random variable b is used as a power of 10. By letting:

x = ± 10b

with b ranging from -4 to +4 in steps of 0.01, there are one hundred random values in each order of magnitude (0.000 1 to 0.001, 0.001 to 0.01, 0.01 to 0.1, 0.1 to 1, 1 to 10, 10 to 100, 100 to 1 000 and 1 000 to 10 000), both positive and negative.

In total, this example generates 6 408 different random questions:

2 (a={-1,1}) × 801 (b={-4:4.01:0.01}) × 4 (rnsf={1,2,3,4}) = 6 408

The Formulas question should look like this:

Formulas201712301427.png

Play it   Login info  (Open in new tab: Ctrl+Shift+Click)

Factorial

"In mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n. For example,

5!=5\times4\times3\times2\times1=120.

The value of 0! is 1, according to the convention for an empty product." (Reference: https://en.wikipedia.org/wiki/Factorial).

With the built-in function fact(), the Formulas question calculates factorial values up to 170!=7.26\rm{E}306 (which would correspond to the largest number that can be handled by PHP). For larger values of n, fact() returns INF for the value of n!.

However input (with {_0}, {_1}, etc.) is limited to a maximum value corresponding to 102!=9.61\rm{E}161.(Explain why)

Example

This simple example illustrates the use of the fact() function.

General
  Question name!       Factorial - example 1
Variables
  Random variables     n = {2:8};
                       m = {2:8};
  Global variables     x = fact(n)*fact(m);
Main question
  Question text!       Factorial - example 1
Part 1
  Part's mark*         1
  Answer type          Number
  Answer*              x
  Grading criteria*    Absolute error == 0
  Part's text          Calculate:
                       {n}! x {m}! = {_0} (enter value using integer format)
Combined feedback
  For any correct response
                       The correct answer is: {x} 
  For any incorrect response
                       The correct answer is: {x} 

The Formulas question should look like this:

Formulas201801021122.png

Play it   Login info  (Open in new tab: Ctrl+Shift+Click)

Example

This slightly more elaborate example shows that the fact() function can handle large factorials and also that calculations with factorials can easily be performed using the fact() function.

General
  Question name!       Factorial - example 2
Variables
  Random variables     n = {0:171:1};
                       nn = {12:171:1};
                       na = {1:10};
                       m = {0:103:1};
  Global variables     x=fact(m);
Main question
  Question text!       Factorial
                       1. It can easily be shown that {nn}! / {=nn-na}! = {=fact(nn)/fact(nn-na)}.
Part 1
  Part's mark*         1
  Answer type          Number
  Answer*              x
  Grading criteria*    Relative error < 0.01
  Part's text          2. Calculate the following factorial:
                       {m}! = {_0}
Combined feedback
  For any correct response
                       The correct answer is: {x} 
  For any incorrect response
                       The correct answer is: {x} 

The Formulas question should look like this:

Formulas201801020347.png

Play it   Login info  (Open in new tab: Ctrl+Shift+Click)


Back to top of page

← FORMULAS QUESTION TYPE