tpl/math: Add math.Rand template function

Closes #11833
This commit is contained in:
Joe Mooring
2023-12-28 14:25:29 -08:00
committed by Bjørn Erik Pedersen
parent 9cd8fbb332
commit e40b9fbbcf
5 changed files with 71 additions and 6 deletions

View File

@@ -0,0 +1,44 @@
---
title: math.Rand
description: Returns a pseudo-random number in the half-open interval [0.0, 1.0).
categories: []
keywords: []
action:
aliases: []
related: []
returnType: float64
signatures: [math.Rand]
---
The `math.Rand` function returns a pseudo-random number in the [half-open interval] [0.0, 1.0).
```go-html-template
{{ math.Rand }} → 0.6312770459590062
```
To generate a random integer in the [closed interval] [0, 5]:
```go-html-template
{{ math.Rand | mul 6 | math.Floor }}
```
To generate a random integer in the closed interval [1, 6]:
```go-html-template
{{ math.Rand | mul 6 | math.Ceil }}
```
To generate a random float, with one digit after the decimal point, in the closed interval [0, 4.9]:
```go-html-template
{{ div (math.Rand | mul 50 | math.Floor) 10 }}
```
To generate a random float, with one digit after the decimal point, in the closed interval [0.1, 5.0]:
```go-html-template
{{ div (math.Rand | mul 50 | math.Ceil) 10 }}
```
[closed interval]: /getting-started/glossary/#interval
[half-open interval]: /getting-started/glossary/#interval

View File

@@ -147,6 +147,16 @@ A numeric data type without a fractional component. For example, `42`.
Software design and development efforts that enable [localization](#localization). See the [W3C definition](https://www.w3.org/International/questions/qa-i18n). Abbreviated i18n.
###### interval
An [interval](https://en.wikipedia.org/wiki/Interval_(mathematics)) is a range of numbers between two endpoints: closed, open, or half-open.
- A _closed_ interval, denoted by brackets, includes its endpoints. For example, [0,&nbsp;1]&nbsp;is the interval where `0 <= x <= 1`.
- An _open_ interval, denoted by parenthesis, excludes its endpoints. For example, (0,&nbsp;1)&nbsp;is the interval where `0 < x < 1`.
- A _half-open_ interval includes only one of its endpoints. For example, (0,&nbsp;1]&nbsp;is the _left-open_ interval where `0 < x <= 1`, while [0,&nbsp;1)&nbsp;is the _right-open_ interval where `0 <= x < 1`.
###### kind
See [page kind](#page-kind).