Note: You are currently viewing documentation for Moodle 3.3. Up-to-date documentation for the latest stable version of Moodle is probably available here: Formulas: More examples.

Formulas: More examples: Difference between revisions

From MoodleDocs
(Redirected page to Formulas question type)
 
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Formulas question type}}
#REDIRECT [[Formulas_question_type]]
 
=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:
 
<pre style="font-size:113%;width: 98%;">
xr=x==0?x:round(x*pow(10,nsf-1-floor(log10(abs(x)))),0)*pow(10,-nsf+1+floor(log10(abs(x))));
</pre>
 
where <span style="font-family: monospace;font-size:113%;">x</span> is the number to be rounded, <span style="font-family: monospace;font-size:113%;">nsf</span> the number of significant digits to keep and <span style="font-family: monospace;font-size:113%;">xr</span> the resulting rounded value.
 
<div style="border:1px solid #bce8f1;border-radius:4px;padding: 0px 15px 0px; margin:20px 0 25px;">
<div style="font-family:Lucida Sans Unicode;font-size:150%;color:#f98012;margin:10px 0 10px;>Example</div>
 
This example deals with the display of the correct answers with different numbers of significant figures.
 
The Formulas question should look like this:
 
[[File:Formulas201712310126.png|680px]]
 
<div style="margin:20px 0 20px;">
[http://35.193.77.29/mod/quiz/view.php?id=153<span style="background-color:#f98012;box-shadow: 0 5px 10px #cbcbcb;border: none;color:white;padding: 8px 16px;text-align:center;text-decoration: none;cursor:pointer;">Play it</span>]   [[Formulas_question_type#Examples|Login info]]  ''(Open in new tab: Ctrl+Shift+Click)''
</div>
</div>
 
<div style="border:1px solid #bce8f1;border-radius:4px;padding: 0px 15px 0px; margin:20px 0 25px;">
<div style="font-family:Lucida Sans Unicode;font-size:150%;color:#f98012;margin:10px 0 10px;>Example</div>
 
This example is a significant figures drill.
 
<pre style="font-size:113%;width: 98%;">
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}
</pre>
 
In the Variables fields (random, global and local), lines starting with # are treated as comments.
 
<div style="background-color:#d3ffd3;
            border:1px solid #abdaac;
            border-radius:4px;
            color:#4f691a;
            padding:5px 15px 10px;
            margin: 15px 0 15px;
            ">
It is always a good idea to document your work using comments in the Variable fields.</div>
 
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 <span style="font-family:monospace;font-size:113%;">b</span> is used as a power of 10. By letting:
 
<div style="margin-left:50px;font-family:monospace;font-size:113%;">x = ± 10<sup>b</sup></div>
 
with <span style="font-family:monospace;font-size:113%;">b</span> 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:'''
 
<div style="margin-left:50px;">2 (a={-1,1}) × 801 (b={-4:4.01:0.01}) × 4 (rnsf={1,2,3,4}) = 6 408</div>
 
The Formulas question should look like this:
 
[[File:Formulas201712301427.png|680px]]
 
<div style="margin:20px 0 20px;">
[http://35.193.77.29/mod/quiz/view.php?id=152<span style="background-color:#f98012;box-shadow: 0 5px 10px #cbcbcb;border: none;color:white;padding: 8px 16px;text-align:center;text-decoration: none;cursor:pointer;">Play it</span>]   [[Formulas_question_type#Examples|Login info]]  ''(Open in new tab: Ctrl+Shift+Click)''
</div>
</div>
 
=Factorial=
"In mathematics, the factorial of a non-negative integer  <span style="vertical-align:1px;"><math>n</math></span>, denoted by <span style="vertical-align:3px;"><math>n!</math></span>, is the product of all positive integers less than or equal to <span style="vertical-align:1px;"><math>n</math></span>. For example,
 
<div style="margin-left:50px;vertical-align:40px;"><math>5!=5\times4\times3\times2\times1=120.</math></div>
 
The value of <span style="vertical-align:3px;"><math>0!</math></span> is <span style="vertical-align:3px;"><math>1</math></span>, according to the convention for an empty product." (Reference: https://en.wikipedia.org/wiki/Factorial).
 
With the built-in function <span style="font-family: monospace;font-size:113%;">fact()</span>, the Formulas question calculates factorial values up to <span style="vertical-align:3px;"><math>170!=7.26\rm{E}306</math></span> (which would correspond to the largest number that can be handled by PHP). For larger values of <span style="vertical-align:1px;"><math>n</math></span>, <span style="font-family: monospace;font-size:113%;">fact()</span> returns <span style="font-family: monospace;font-size:113%;">INF</span> for the value of <span style="vertical-align:4px;"><math>n!</math></span>.
 
However, input (with {_0}, {_1}, etc.) is limited to a maximum value corresponding to <span style="vertical-align:4px;"><math>102!=9.61\rm{E}161</math></span>.<sup>(Explain why)</sup>
 
<div style="border:1px solid #bce8f1;border-radius:4px;padding: 0px 15px 0px; margin:20px 0 25px;">
<div style="font-family:Lucida Sans Unicode;font-size:150%;color:#f98012;margin:10px 0 10px;>Example</div>
 
This simple example illustrates the use of the <span style="font-family: monospace;font-size:113%;">fact()</span> function.
 
<pre style="font-size:113%;width: 98%;">
General
  Question name!      Factorial - simple example
Variables
  Random variables    n = {2:8};
                      m = {2:8};
  Global variables    x = fact(n)*fact(m);
Main question
  Question text!      Factorial
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}
</pre>
 
The Formulas question should look like this:
 
[[File:Formulas201801020347.png|680px]]
 
<div style="margin:20px 0 20px;">
[http://35.193.77.29/mod/quiz/view.php?id=172<span style="background-color:#f98012;box-shadow: 0 5px 10px #cbcbcb;border: none;color:white;padding: 8px 16px;text-align:center;text-decoration: none;cursor:pointer;">Play it</span>]   [[Formulas_question_type#Examples|Login info]]  ''(Open in new tab: Ctrl+Shift+Click)''
</div>
</div>
 
<div style="border:1px solid #bce8f1;border-radius:4px;padding: 0px 15px 0px; margin:20px 0 25px;">
<div style="font-family:Lucida Sans Unicode;font-size:150%;color:#f98012;margin:10px 0 10px;>Example</div>
 
This example shows that calculations on factorials can be readily done with the <span style="font-family: monospace;font-size:113%;">fact()</span> function.
 
<pre style="font-size:113%;width: 98%;">
General
  Question name!      Factorial
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}
</pre>
 
The Formulas question should look like this:
 
[[File:Formulas201801020347.png|680px]]
 
<div style="margin:20px 0 20px;">
[http://35.193.77.29/mod/quiz/view.php?id=172<span style="background-color:#f98012;box-shadow: 0 5px 10px #cbcbcb;border: none;color:white;padding: 8px 16px;text-align:center;text-decoration: none;cursor:pointer;">Play it</span>]   [[Formulas_question_type#Examples|Login info]]  ''(Open in new tab: Ctrl+Shift+Click)''
</div>
</div>
 
 
[[#top|Back to top of page]]
 
[[Formulas_question_type|← FORMULAS QUESTION TYPE]]

Latest revision as of 00:59, 1 February 2018