Path: ...!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: Fri, 6 Dec 2024 22:04:16 -0000 (UTC) Organization: A noiseless patient Spider Lines: 45 Sender: Mike Sanders Message-ID: References: Injection-Date: Fri, 06 Dec 2024 23:04:16 +0100 (CET) Injection-Info: dont-email.me; posting-host="b091e410931247565241b7435975ad23"; logging-data="2738792"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/vOrjh8WSNGz5jojehbD3L" User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (NetBSD/9.3 (amd64)) Cancel-Lock: sha1:I52BoNZbKDtRwri7LMioM5JI0sw= Bytes: 2315 Mike Sanders wrote: > Yes, certainly, let me study & consider your code & see if I can weave > it into the project. Sounds interesting. ok, a start, but still need to rework loop, hopefully this weekend. also added global SEED allowing for re-use... awk -f algebra.awk -v SEED=$RANDOM BEGIN { SEED = SEED ? SEED : 1 srand(SEED) # seed random number generator # keep generating until we have exactly 100 unique equations while (u < 100) { a = rnd(1, 20) # random value 1 to 20 b = rnd(1, 20) # random value 1 to 20 c = rnd(1, 50) # random value 1 to 50 z = (rnd(1, 2) == 1) ? "+" : "-" # safe/janis: random operator # z = substr("*-/+", (++q % 4) + 1, 1) # wild/mike: cycle operators e = sprintf("%dx %s %d = %d", a, z, b, c) # formatted equation # 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 } } # print equations printf("SEED: %d\n\n", SEED) for (j in equ) printf("%03d. %s\n\n\n\n\n\n\n", ++n, j) } function rnd(min, max) { return int(rand() * (max - min + 1)) + min } # eof -- :wq Mike Sanders