Groups | Search | Server Info | Login | Register
Groups > comp.lang.awk > #9895
| From | porkchop@invalid.foo (Mike Sanders) |
|---|---|
| Newsgroups | comp.lang.awk |
| Subject | Re: 100 Random Single Variable Linear Equations |
| Date | 2024-12-08 11:02 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <vj3ucv$3oa44$1@dont-email.me> (permalink) |
| References | <vits2o$240vr$1@dont-email.me> |
final iteration: family/work/time-constraints/etc
earnest thanks to all (bonus points: Janis Papanagnou)
# algebra.awk - Michael Sanders 2024
#
# invocation: awk -f algebra.awk -v SEED=$RANDOM > solve.txt
#
# generates unique algebraic equations in 3 forms...
#
# ax + b = c
# ax + bx = c
# ax + b + x = c
#
# where...
#
# x is the variable (solve for x)
# a, b, & c are constants (numbers)
#
# operators: + addition, - subtraction, * multiplication, / division
#
# notes...
#
# - not all equations will be pedantically/academically proper
# - SEED is optional & can be reused
# - post improvements in comp.lang.awk
#
# further reading: https://en.wikipedia.org/wiki/Algebra
BEGIN {
# seed random number generator
if (SEED+0 != SEED) SEED = 1; srand(SEED)
g = 100 # number of unique equations to generate
p = length(g) # uniform padding for serial number
do {
a = rnd(1, 20) # random value for x coefficient
b = rnd(1, 99) # random value for b constant
c = rnd(1, 500) # random value for c constant
n = (rnd(1, 2) == 1) ? "-" : "" # random negative for x coefficient
f = rnd(1, 3) # random equation form
op1 = rop() # 1st random operator
if (f == 1) {
# simple equation: ax op1 b = c
e = sprintf("%s%dx %s %d = %d", n, a, op1, b, c)
} else if (f == 2) {
# medium complexity: ax op1 b2x = c
b2 = rnd(1, 20) # new/different coefficient for 2nd x
e = sprintf("%s%dx %s %dx = %d", n, a, op1, b2, c)
} else if (f == 3) {
# more complex: ax op1 b op2 x = c
op2 = rop() # 2nd random operator
while (op2 == op1) op2 = rop() # hacky...
e = sprintf("%s%dx %s %d %s x = %d", n, a, op1, b, op2, c)
}
# store equation in array if it doesn't already exist and is valid
if (!(e in equ)) {
equ[e] = 1 # mark element as reserved
u++ # increment u for each unique equation
}
} while (u < g)
printf("SEED: %d\n\n", SEED) # print seed & equations in blocks of 10
for (j in equ) printf("%0" p "d. %s%s", ++i, j, (i % 10 == 0) ? "\n\n" : "\n")
}
function rop() { return substr("+-*/", rnd(1, 4), 1) }
function rnd(min, max) { return int(rand() * (max - min + 1)) + min }
# eof
--
:wq
Mike Sanders
Back to comp.lang.awk | Previous | Next — Previous in thread | Find similar
100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-06 03:46 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-06 04:51 +0000
Re: 100 Random Single Variable Linear Equations Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-12-06 13:43 +0100
Re: 100 Random Single Variable Linear Equations Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-12-06 13:59 +0100
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-07 02:39 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-07 20:42 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-06 13:38 +0000
Re: 100 Random Single Variable Linear Equations Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-12-06 21:01 +0100
Re: 100 Random Single Variable Linear Equations Christian Weisgerber <naddy@mips.inka.de> - 2024-12-06 23:05 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-07 01:36 +0000
Re: 100 Random Single Variable Linear Equations Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-12-06 12:53 -0800
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-06 22:05 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-07 02:06 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-06 22:04 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-07 01:49 +0000
Re: 100 Random Single Variable Linear Equations Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-12-07 03:21 +0100
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-08 06:40 +0000
Re: 100 Random Single Variable Linear Equations Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-12-08 15:15 +0100
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-09 16:43 +0000
Re: 100 Random Single Variable Linear Equations Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-12-09 21:10 +0100
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-08 06:06 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-08 07:16 +0000
Re: 100 Random Single Variable Linear Equations porkchop@invalid.foo (Mike Sanders) - 2024-12-08 11:02 +0000
csiph-web