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)
 
(One intermediate revision 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 values 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: 97%;">
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:30px 0 25px;">
====<div style="font-family:Lucida Sans Unicode;font-size:116%;color:#f98012;margin:-20px 0 10px;>'''Example''': Significant figures</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;">
<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;">[http://35.193.77.29/mod/quiz/view.php?id=153 <span style="color:white;">Play it </span>]</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:30px 0 25px;">
====<div style="font-family:Lucida Sans Unicode;font-size:116%;color:#f98012;margin:-20px 0 10px;>'''Example''': Significant figures drill</div>====
 
This example is a significant figures drill.
 
<pre style="font-size:113%;width: 97%;">
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 '''Variables''' 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;">
<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;">[http://35.193.77.29/mod/quiz/view.php?id=152 <span style="color:white;">Play it </span>]</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 <span style="font-family: monospace;font-size:113%;">{_0}</span>, <span style="font-family: monospace;font-size:113%;">{_1}</span>, 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>
 
====References====
 
* Factorials can readily be evaluated up to 170! on Google built-in calculator, under 64-bit Windows and Android:  [https://www.google.ca/search?&q=%3D170! 170!] 
 
* For larger factorials, see WolframAlpha:  [https://www.wolframalpha.com/input/?i=1000! 1000!]  [https://www.wolframalpha.com/input/?i=(10%5E100)! 10<sup>100</sup>!]
 
<div style="border:1px solid #bce8f1;border-radius:4px;padding: 0px 15px 0px; margin:30px 0 25px;">
====<div style="font-family:Lucida Sans Unicode;font-size:116%;color:#f98012;margin:-20px 0 10px;>'''Example''': Factorial</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: 97%;">
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}
</pre>
 
The Formulas question should look like this:
 
[[File:Formulas201801021122.png|680px]]
 
<div style="margin:20px 0 20px;">
<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;">[http://35.193.77.29/mod/quiz/view.php?id=173 <span style="color:white;">Play it </span>]</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:30px 0 25px;">
====<div style="font-family:Lucida Sans Unicode;font-size:116%;color:#f98012;margin:-20px 0 10px;>'''Example''': Large factorials</div>====
 
This slightly more elaborate example shows that the <span style="font-family: monospace;font-size:113%;">fact()</span> function can handle large factorials and also that calculations with factorials can easily be performed using the <span style="font-family: monospace;font-size:113%;">fact()</span> function.
 
<pre style="font-size:113%;width: 97%;">
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 - example 2
Part 1
  Part's mark*        1
  Answer type          Number
  Answer*              x
  Grading criteria*    Relative error < 0.01
  Part's text          1. Calculate:
                      {m}! = {_0} (use scientific notation for large numbers)
                      2. It can easily be shown that {nn}! / {=nn-na}! = {=fact(nn)/fact(nn-na)}.
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;">
<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;">[http://35.193.77.29/mod/quiz/view.php?id=172 <span style="color:white;">Play it </span>]</span>   [[Formulas_question_type#Examples|Login info]]  ''(Open in new tab: Ctrl+Shift+Click)''
</div>
</div>
 
=Character string answer=
 
The Formulas question was not designed to accept answers that consist of words. However, it is possible to use the algebraic formula answer to do so. Here are the points to remember:
* The algebraic formula answer is a string of characters.
* Words of the desired answer can be represented by variables of the algebraic formula.
* The multiplication of variables is denoted by a space.
 
The following example illustrates how to do it.
 
<div style="border:1px solid #bce8f1;border-radius:4px;padding: 0px 15px 0px; margin:30px 0 25px;">
====<div style="font-family:Lucida Sans Unicode;font-size:116%;color:#f98012;margin:-20px 0 10px;>'''Example''': Character string answer</div>====
 
This example illustrates how to accept an answer that consists of a words.
 
<pre style="font-size:113%;width: 97%;">
General
  Question name!      Highest mountain on the Moon
Variables
  Global variables    a=1;
                      b=302741;
                      Mons=a;
                      Mount=a;
                      Huygens=b;
Main question
  Question text!      String of characters answer
                      {#1}
Part 1
  Part's mark*        1
  Answer type          Algebraic formula
  Answer*              "a*b"
  Grading criteria*    Absolute error == 0
  Placeholder name    #1
  Part's text          What is the name of the highest mountain on the Moon?
                      {_0}
</pre>
 
Valid answers are <span style="font-family: monospace;font-size:113%;">Mons Huygens</span>, <span style="font-family: monospace;font-size:113%;">Mount Huygens</span> and <span style="font-family: monospace;font-size:113%;">Huygens</span>, as well as <span style="font-family: monospace;font-size:113%;">a*b</span>, <span style="font-family: monospace;font-size:113%;">a b</span>, <span style="font-family: monospace;font-size:113%;">b</span>, <span style="font-family: monospace;font-size:113%;">302741</span> and any formula that evaluates to <span style="font-family: monospace;font-size:113%;">a*b</span>, <span style="font-family: monospace;font-size:113%;">b</span>, or <span style="font-family: monospace;font-size:113%;">302741</span>.
 
The value <span style="font-family: monospace;font-size:113%;">302741</span> is simply a random value unlikely to be given as an answer. <span style="font-family: monospace;font-size:113%;">a</span> and <span style="font-family: monospace;font-size:113%;">b</span> are defined such that <span style="font-family: monospace;font-size:113%;">a*b = b</span> in order to accept <span style="font-family: monospace;font-size:113%;">a b</span> (i.e. Mons Huygens or Mount Huygens) and <span style="font-family: monospace;font-size:113%;">b</span> (i.e. Huygens) as valid answers.
 
The answers <span style="font-family: monospace;font-size:113%;">a b</span> and <span style="font-family: monospace;font-size:113%;">b</span> can be prevented by replacing <span style="font-family: monospace;font-size:113%;">a</span> by say <span style="font-family: monospace;font-size:113%;">a302741</span> and <span style="font-family: monospace;font-size:113%;">b</span> by <span style="font-family: monospace;font-size:113%;">b302741</span>.
 
The Formulas question should look like this:
 
[[File:Formulas en 20180130 2354.png|680px]]
 
<div style="margin:20px 0 20px;">
<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;">[http://35.193.77.29/mod/quiz/view.php?id=289 <span style="color:white;">Play it </span>]</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]]
 
=In other languages=
[https://docs.moodle.org/all/es/F%C3%B3rmulas:_M%C3%A1s_ejemplos Español]<br>
[https://docs.moodle.org/3x/fr/Formules:_Plus_d'exemples Français]

Latest revision as of 00:59, 1 February 2018