Deutsch   English   Français   Italiano  
<vivsd0$2jij8$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

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 <busybox@sdf.org>
Message-ID: <vivsd0$2jij8$1@dont-email.me>
References: <vits2o$240vr$1@dont-email.me> <vitvta$24sm3$1@dont-email.me> <viurhe$2bces$1@dont-email.me> <viuunp$2c1ev$1@dont-email.me>
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 <porkchop@invalid.foo> 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