You can add a script to your exercise to define random variables. Use these variables in the instructions and interactions of your exercise.
A basic randomised algebra interaction
This question is the randomised variant of this static algebra interaction. Create a copy of this basic exercise and use the below instructions to update the interaction to make it randomised.
Use the dropdown on the top left to add a script to the exercise.

We will create a script that defines a quadratic equation with integer solutions.

The scripting functionality of AlgebraKiT supports a rich set of commands and programming features. For now, the most important thing is that we have defined the variable expr that represents the random quadratic expression.
In the instruction, change the equation as follows:

In the task definition, update the field for the relation.

Your first randomised exercise is ready! Now click Run.
The following exercise is generated from this example. Refresh the page to see a different instance.
If you want to learn more about scripting then read the section ‘Scripting concepts’ below.
Scripting concepts
Variable definitions
A variable is a sequence of symbols. Allowed symbols are letters, digits, and the underscore. The first symbol must be a letter.
You can create a definition using the symbol :=.
my_variable:= 2x^2-3x+4
Note that the definition does not have to be a number, but can be any mathematical expression.
Operators
The following table lists the basic math operators
Symbol | Operation |
---|---|
* | Multiplication. See remark 1) |
/ | Division |
+ | Addition |
– | Subtraction |
^ | Power |
=, >, <, >=, <=, <> | Relational symbols (not evaluated) |
==, >>, <<, >>=, <<=, <<>> | Relational symbols (evaluated, see remark 2) |
- The multiplication symbol is optional. So 3x is interpreted as 3*x. However, ab is interpreted as the variable ‘ab’ and not as a*b. You should add a times symbol or an extra space if you intend the multiplication.
- The relational symbols =, >, <, <=, and >= are used to construct mathematical relations without evaluating them. E.g. x^2=2x is an equation, whereas 2==3 is an expression that will be evaluated as False.
Constants
Constant | Description |
---|---|
True, False | Boolean constants |
Pi | The number π |
EulerE | Euler’s constant e |
NaN | Not-a-number |
{} | The empty set |
Constructions
The scripting language of AlgebraKiT defines the following constructions to build expressions:
Construction | Description |
---|---|
( ) | Parenthesis |
[ ] | Function arguments |
{ } | List |
` ` | Toggle between text (HTML) and math |
[[ ]] | List index |
Some examples:
Expression | Description |
---|---|
Sin[2 x] | The sine of 2x |
v:= {1, 2a, x^y} | Define variable v as a list of 3 items |
v[[2]] | Take the 2nd element of
the list (which is 2a in this
case). Note that the first element has index 1, not 0. |
Text[`this is a text`] | A command that contains text |
Some essential commands
The complete list of commands can be found in the Syntax guide. The following table lists the commands that are used most often.
Command | Description | Example |
---|---|---|
Simplify | Apply mathematical rules
to simplify the expression as much as
possible. |
Simplify[1*x*x] gives x^2 |
RandomInt | Generate a random integer number within a range. | RandomInt[2,10] gives an integer number in the range 2 to 10. |
RandSelect | Select a random element from the list | RandSelect[{1,x,2y}] gives one of the three items in the list. |
Strict | Evaluate a boolean expression. An undetermined expression will result in False | Strict[3>>2]
gives True Strict[x>>y] gives False |
Was this helpful?
0 / 0
Was this helpful?
0 / 0