Numerical Simulation utilizes a Program Model that enables simulations using an expressive programming language of Maxima which is based on Lisp.

This article will cover a variety of the most common variable types.

# Variable Basics

**Question**

James has 2 apples. Amy has twice as many. How many does Amy have?

jamesApples: 2;

amyApples: jamesApples * 2;

Programme Input =

`jamesApples`

Candidate Input =

amyApples is CORRECT

# Random Variables

`random(n)`

- Set n as a positive integer. An integer between 0 up to but not including the number will be randomly generated.

`rand(n.0)`

- Set n as a positive integer and a floating point will be generated between 0.0 and n.0.

`rand_with_step(lower,upper,step)`

- Set a number range with lower and upper limits, and the value increase between each number in between. One of these values will be randomly generated.

`rand_with_prohib(lower,upper,[n0,n1..])`

- Set a number range with lower and upper limits using an integer, and in square brackets list the integers to exclude.

**Examples**

`myVar: random(5);`

Possible results for myVar = 0, 1, 2, 3, 4

`myVar: rand(2.0);`

Possible results for myVar = 0.12…, 0.022…, 1.98…, 1.47… etc.

`myVar: rand_with_step(-3,3,1);`

Possible results for myVar = -3, -2, -1, 0, 1, 2, 3

`myVar: Rand_with_step(0.5,3,0.5);`

Possible results for myVar = 0.5, 1.0, 1.5, 2.0, 2.5, 3.0

`myVar: rand_with_prohib(1,10,[5,6,7]);`

Possible results for myVar = 1, 2, 3, 4, 8, 9, 10

# Rounding

`decimalplaces(myVar, n)`

- Define your variable or value and n rounds the value to that many decimal places.

**Examples**

myVar = 1.5237;

roundedVar: decimalplaces(myVar, 2);

Result = 1.52

`roundedVar: decimalplaces(1.5237, 3);`

Result = 1.53