Deutsch English Français Italiano |
<vj3d23$3kkn4$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: porkchop@invalid.foo (Mike Sanders) Newsgroups: comp.lang.awk Subject: Re: 100 Random Single Variable Linear Equations Date: Sun, 8 Dec 2024 06:06:59 -0000 (UTC) Organization: A noiseless patient Spider Lines: 65 Sender: Mike Sanders <busybox@sdf.org> Message-ID: <vj3d23$3kkn4$1@dont-email.me> References: <vits2o$240vr$1@dont-email.me> Injection-Date: Sun, 08 Dec 2024 07:07:02 +0100 (CET) Injection-Info: dont-email.me; posting-host="0513f042c00441571518d761624f4bea"; logging-data="3822308"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19IcAdyt1VJIFMrSa8i9pNJ" User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (NetBSD/9.3 (amd64)) Cancel-Lock: sha1:BUzyM8PMrjCb7SK3dEit5HMZjzc= Bytes: 3114 Mike Sanders <porkchop@invalid.foo> wrote: > # outputs 100 random single variable linear equations in the form: ax+b=c now randomly creates up to 2 instances of 'x' per equation & 3 random forms... ax op1 b = c ax op1 bx = c ax op1 b op2 x = c (really more than 3 if there's a leading negtive) and unless there's something out of whack, i'm using this version, because algebra can melt my brain as it increases in complexity... BEGIN { # seed random number generator if (SEED+0 != SEED) SEED = 1; srand(SEED) # keep generating until we have exactly 100 unique equations do { a = rnd(1, 20) # random value for coefficient x b = rnd(1, 99) # random value for b constant c = rnd(1, 99) # random value for c constant n = (rnd(1, 2) == 1) ? "-" : "" # random negative for coefficient x f = rnd(1, 3) # random equation form op1 = rop() # 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 bx = c b2 = rnd(1, 20) # new/different coefficient for 2nd x op2 = rop() # 2nd random operator e = sprintf("%s%dx %s %dx = %d", n, a, op1, b2, op2, c) } else if (f == 3) { # more complex: ax op1 b op2 x = c op2 = rop() # 2nd random operator 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 if (!(e in equ)) { equ[e] = 1 # mark element as reserved u++ # increment u for each unique equation } } while (u < 100) # print seed & equations printf("SEED: %d\n\n", SEED) for (j in equ) printf("%03d. %s\n", ++i, j) } function rop() { return substr("+-*/", rnd(1, 4), 1) } function rnd(min, max) { return int(rand() * (max - min + 1)) + min } # eof -- :wq Mike Sanders