Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Hardware

Rube-Goldberg Type Random Number Generators? 82

stercor asks: "I've been considering random number generators made with easily-available materials. Living in Oregon might suggest photoelectric cells and rain. Or something to do with slugs (generation rate IS a factor, however) My question is what other off-the-wall shelf hare-brained brilliant ideas can other Slashdot readers come up with? Please limit ideas to ones that would actually work." When I was younger, I was always intrigued by the rigs used by most State Lotteries. You know the ones: dump balls into a chamber, throw in a fan/vacuum combination to agitate the balls and to allow a random one to shoot thru a tube when the button was pressed (basically, a high tech version of your average BINGO machine). Has anyone else seen or built a contraption that does something similar but in a weird, roundabout or weird and roundabout way?
This discussion has been archived. No new comments can be posted.

Rube-Goldberg Type Random Number Generators?

Comments Filter:
  • I usually go for frequency and location of traffic accidents. It's fairly random (if you throw out locations that are common), and generation speed is VERY high.

    --MonMotha
  • I think the site is gone with the death of reality.sgi.com but they used to have an O2 genterating random numbers using lava lamps.
    • I remeber the sgi page... but I always thought lava lamps were a little cumbersome for random number generation, firstly they take several minutes to warm up before there's any visible movement, they give off a lot of heat, and they aren't supposed to be on for more than 10 hours. I figure something like bits of styrofoam in a large clear tube with a fan at the bottom would be more efficient, as the styrofoam bits should fly around quite randomly.
    • Look it's being setup again, due in September, here [lavarnd.org].

      It's got a picture of the old sgi setup.
    • Well, my planned comment was remembered by everyone else. That's cool. Here's one for you, though, that is portable and position-insensitive. A Geiger tube, counting pulses instead of averaging them. If the generation rate is too low, a femtocurie of radium should speed that up as high as you need it.
  • if anyone comes up with some really cool idea thats very random, and can becompressed really small, that would be a nifty hardware project to make for a computer, to use real random numbers (winamp definitly could use it [dont get started on me using windows, i hate it too])...kinda like that mini-combo lock that was made for government computer security, its really really small, and implanted on a circuit board, so its almost impossible to hack without opening up the computer
    • Check out RoboDJ [kuro5hin.org], made by just one of the really cool, really clueful people that hang out on Kuro5hin.org. RoboDJ replaces the default WinAmp randomness with a weighted random selector that promises to be better than the default.

      --Robert
  • Resistors (Score:1, Interesting)

    by Anonymous Coward
    I've read about hardware implementations of random number generators that use thermal noise from resistors.
  • HotBits. [fourmilab.ch] I doubt you could implement it at home, though.
    • That might not keep people from TRYING [slashdot.org] though...
    • > I doubt you could implement it at home

      If you get a cheap Geiger-Mueller somwhere the natural activity around us should provide you with enough randomness for all your home-computing needs :-). Not necessary go get some additional source for a higher rate!
  • Just use /. (Score:2, Interesting)

    I've yet to notice any coorelation between a topic and the number of troll/flamebait/offtopic responses, so just grab a topic, count the number of whatever responses and factor the result in whatever way you want.

    Hope this helps. :)
    • I believe this would not work because you would never get any numbers close to zero. ;)
    • by skotte ( 262100 )
      you know, i was just thinking exactly the same thing.

      here's one other:
      Post a random comment.
      the number of moderation points, given a suitable comment, will probably be completely random.
      • Yeah, a good example is how I was modded as flamebait and you get a funny whilst riding on my original joke.

        I was cheated I tell ya, cheated! *grumble*

        • it's true. completely random.

          hey, i'll mod you up next time i have some points, mm-kay?
          it is karma, afterall. and what goes around comes around, yes?
          • Heh, you so funny. No thanks, I have more karma than I know what to do with. Sheesh, I had five level five posts on Thursday, so I'm karma fat.

            Only problem is, I'm a really lousy troll. Oh well, maybe I need to go to troll school or something. I'll check O-Reilly's and see if they have a "Trolling Slashdot in a Nutshell" or something similar.

            Cheers,

  • ok (Score:1, Troll)

    by Laplace ( 143876 )
    define random.

    Yeah, I didn't think so...
    • Re:ok (Score:2, Funny)

      by Hydro-X ( 549998 )
      random: : a haphazard course
      at random : without definite aim, direction, rule, or method

      www.m-w.com [m-w.com]
      • Re:ok (Score:1, Troll)

        by Laplace ( 143876 )
        How can you generate a number "without definite aim, direction, rule, or method?"

        bzzt! Try again!
    • Or in a more techinical(within the scope of a random number generator) a random selection is a selection from a set where any element of the set has an equal likelyhood of being selected.
      • Re:ok (Score:1, Troll)

        by Laplace ( 143876 )
        Not quite there. How is the selection made? I can take the set {0 1 2 3 4 5} and select numbers serially. 0, 1, 2, 3, 4, 5, 0, 1, 2...

        For a large enough series (or a small enough series divisible by 6) each item has an equal probability of being selected.

        bzzzt! Try again.

        • Er, no. If you select the numbers serially, you know EXACTLY what the next number is. If you select 0, selecting serially, then the next number is 1. That's not equal probability, that's certainty. You can't just think of the global case when doing probability.
          • Re:ok (Score:1, Troll)

            by Laplace ( 143876 )
            So you define randomness in terms of probability? Define what probability is. Do your best not to invoke the definition of random.
            • >So you define randomness in terms of probability?
              A minimum requirement for a completely random selection is that the set of objects chosen from have an equal probability of being chosen. Otherwise, it is not fully random (ignoring the fact that very little is fully random in real life).

              >Define what probability is. Do your best not to invoke the definition of random.
              Doing your homework for you:
              dictionary.com:
              3a. The likelihood that a given event will occur.
              3b. Statistics. A number expressing the likelihood that a specific event will occur, expressed as the ratio of the number of actual occurrences to the number of possible occurrences.

              Oh, and while we're at it, let's look up random, too!
              2. Mathematics & Statistics. Of or relating to a type of circumstance or event that is described by a probability distribution.
              3. Of or relating to an event in which all outcomes are equally likely, as in the testing of a blood sample for the presence of a substance.

              Equal probability. Every dictionary i could get my (literal or figurative) hands on all define random in terms of probability. So, now I fire a question back. You don't define random in terms of probability?
              • The best definition of random I have ever seen is this:

                A string whose complexity (or in other words, the length of an algorithm to generate that string) is equal to the length of the string plus a constant (the constant is there for some very specific reasons, but it is a bit complicated to go into here).

                Random is very difficult to get a hold of. There are many mathematicians who would claim that randomness doesn't even exist!
                • I'm curious. Could you possibly find a link? I googled for it, but I'm not quite sure what to look for.
  • Chicken droppings on a grid.
  • Smoke (Score:3, Interesting)

    by tswinzig ( 210999 ) on Friday July 26, 2002 @10:49PM (#3962786) Journal
    How about a webcam that is aimed at a black backdrop, with an incense burner hidden just out of frame, below. You light some incense, turn the webcam on, every time you take a picture you get a random black and white image. Do some fancy pixel crunching to generate a number.

    • Re:Smoke (Score:3, Informative)

      by skotte ( 262100 )
      ooh, yeah, i like that. very nice. well done.

      to be honest, any similar sort of image will do. the image just needs to change *enough*. so like a webcam of a busy elevator or traffic intersection will do. or a webcam pointed at a television. or a dog kennel/chicken coop/horse stable. or just a picture of the person seeking the number (the human visage changes by subtle amounts all the time).

      yeah, your version is a lot prettier. but i do think you'd need several chunks of incense, to make enough smoke.
    • lavarand.sgi.com used to do something like this, except with lava lamps. They seem to have changed things a bit and moved to lavarnd.org [lavarnd.org].
    • Or a cheap radio tuned to a spot on the band that's static, connected to the line-in of the sound card?

      • Or even the thermal noise. The "static" you hear when nothing is plugged in to the line-in/mic.

        Got that one from Applied Crypto.
  • I've always wanted a highly detailed computer similation of those things.
  • How about this... (Score:2, Insightful)

    by wbav ( 223901 )
    A button on a sidewalk somewhere. If people step on it/kids play with it, you're ensured a random number.
  • by satch89450 ( 186046 ) on Friday July 26, 2002 @11:38PM (#3962940) Homepage

    I've been vexed that the sound card plus CD-ROM drive combination always shows signal at around -50 dBVU in CoolEdit. So, just for grins, I decided to capture a few seconds of the noise and analyze the properties. I was astonished to see that the resulting signal is a white-noise pattern with a slight emphasis at the high end (when sampled at 44 kilosamples per second). In short, it looks like diode noise with a 4 kilohertz square wave thrown in.

    That suggests to me that this would make a fair source of random samples, especially after you slot out the interfering signal.

    How many computers don't have cheap sound cards and CD-ROM drives?

  • Cheap CCD webcam (Score:3, Informative)

    by eXtro ( 258933 ) on Friday July 26, 2002 @11:54PM (#3962980) Homepage
    I can't find my polarizers, so I can't test this, but I think you could rig something up with a cheap CCD webcam. If you look at a poorly lit image from a CCD there's an awful lot of noise, and the image sort of rides on top of this noise. If you took your cheap CCD webcam and kept reducing the light to it till you got mostly noise it'd be simple to capture and generate random data from. I was thinking of a shoebox with the sensor inside, USB cable coming through a small light-tight hole. Make a hole in front of the lens and stick a pair of polarizers in front of that hole. Rotate the polarizers to get a light intensity such that you get lots of noise.

    If you snap a frame you'll get some random bits. Somebody could break the randomness by shining a really bright light through the polarizers, but as long as you can control access to the shoe box you'd be fine.
    • Don't bother reducing the brightness. Just generate the delta of the image from second to second. You'll probably end up something with lots of 0's. Next step, read in the bit stream we just generated two bits at a time. If the bits are 00 or 11, discard them. If the bits are 01, generate a 0. If the bits are 10, generate a 1.

      Again, the idea is from Applied Cryptography.
  • Here's a goofy one (Score:2, Insightful)

    by Grotus ( 137676 )
    Shred a bunch of junk mail with a confetti style (cross cut) shredder, dump the resulting pieces on a scanner, then run the capture through an OCR program.

  • Shocked! Yes, shocked and dismayed I am to note that the SGI lava-lamp random number generator has not been mentioned! Unfortunately, it seems to be gone. It's too bad, really... it was a VERY cool combination of the physical world and computers.

    http://lavarand.sgi.com used to tell you about an apparatus that SGI's researchers had set up to generate "truly random" numbers. It worked by using several (about 6?) lava lamps clamped in laboratory stands and placed very close together. A SGI camera (an IndyCam, IIRC) was pointed at the slowly roiling liquids, and they generated random numbers by the percentage of the frame that was occluded. (Transparent vs. opaque liquid)

    Or something like that. It's been years since I looked at it, and it's gone now. Damn.

    • Taking the obligatory look at the forever cached version [archive.org] of lavarand.sgi.com reveals a little information. Granted, the cool images are definitely not there. A pity.

      However, checking the above link reveals that the digital photography technique did not involve such interesting processing as determining transparent vs. opaque. Quoting:

      The digital output of the image is then munged by an algorithm, which compresses and scrambles it. Thus the 921,600-byte image is transmogrified into an 140-byte "seed."

      The technical description mentions the use of SHS-1 and then the Blum Blum Shub pseudo-random number generator. Not being familiar with such subjects, it does seem that this is even more Rube-Goldberg [rube-goldberg.com] like than a 'simple' image processing which determines opacity.


      • Good show, I'd forgotten about all the different archives out there. I noticed that Google didn't have a cache of it, and stopped there.

        Looking at the page, I note they weren't using the IndyCam, but the O2Cam.

        I think I remember the lava lamps being backlit, that would make for a relatively easy transparent/opaque determination. The O2Cam is a color system, so you use what amount of which color is covering what percentage of which section of the image... there are a lot of ways to get your "digital output of the image" from which the calculations start.

        Interestingly, a 921,600-byte image works out to 640 by 480 at 24-bit color. Reading further, it looks like that was exactly what they were doing -- blobs of color in various places, never the same twice. Neat idea, available (at the time) as a "Professional Service." I wonder if they still offer it... I'm sure they would, for enough money.

        The only reference to Lavarand I could find at SGI's site, by the way, was an entry in a list of their trademarks.

  • Set up a Perl script that does the following:
    • Copies a headline from a news source (The Register, MSNBC, Kuro5hin, etc.)
    • Submits the story to Slashdot
    • Checks back to see if the story has been accepted
    That should be random enough for anyone.
  • i could just go around to the neighbors house, make a little noise, and count how many times the dog barks at me. perhaps, the number of barks in a minute.

    the problam is, you wont get zero. you begin counting with the start of barking. and you are unlikely to get anything around one or two - dogs are like that.

    still, it should be something kinda random.
    • You could get zero if the dog didn't bark at you. But you're right, it wouldn't be all that random unless your neighbors also got a new dog everytime you went over. Otherwise, after a while you'd be able to give a rough estimate of the number of barks, simply due to the dog's personality (how much he likes to bark, etc).
    • A dog barking gives you some random data, it's just not unbiased random data. That's no problem. Just keep XORing it into the transient seed of a PRNG to extract the randomness. It's virtually foolproof.

      -a
  • Seismograph (Score:3, Insightful)

    by bluGill ( 862 ) on Saturday July 27, 2002 @10:22AM (#3964087)

    Just get a Seismograph, and return the heigh of the last reading. Sensitive enough to measure footsteps across the room, so you shouldn't have a problem if you place it right.

    I live near a freeway, so I have plenty of randomnees avaiable in the traffic going by my house.

    Warning, with this, and many other schemes you need to normalize the data. Otherwise you will tend to get larger numbers during rush hour, and smaller ones during the night. Also a big snow fall (shuts down traffic) will change the values received. Be aware of these issues, if someone else finds out what you are using to generate random numbers they may use that to break your scheme. (Even if you numbers are random, just over a smaller range)

  • You'd need to build something like i binary tree, where, say, a ball bearing or golf ball or whatnot starts a the top of a a board, and can either go left or right. You build as many stages as you need depending on the size of the random number, then number the possible results at the bottom.

    The problem is that you'd need to be fairly precise, or you won't get true random numbers. This is the core problem.

    Counting, say, the number of raindrops that fall in a certain time frame, or number of cars that go by your house with the bass turned up may be random, but the distribution won't be even. Either you're going to get a lot of rain, or no rain, and very seldomly somewhere in between -- and if you're like me, many many cars, but very few blissful, quiet nights.
  • by MrIcee ( 550834 ) on Saturday July 27, 2002 @12:18PM (#3964413) Homepage
    Workers at Silicon Graphics Inc (SGI) did this a few years back... here is a reference [lavarnd.org] to their website that discusses it.

    In a nutshell, they pointed a camera at a lava lamp and used an algorithm to reduce the image into random numbers.

  • There's measuring beta particles of decaying Krypton: Fourmilab Hotbits [fourmilab.ch]

    Then, there's LAVALAMP randomness: LavaRND [lavarnd.org]

    Oh, and you could connect a radio to a sparcstation, and use broadcast noise at: Random.org [random.org]

    Hell, you could use a webcam pointing at a staticy TV.

    Lots of possibilities. Amazing what you can find with ... google.
  • How about using a hash of the IP's of the Code Red hits your server takes? (he says with tougue firmly in cheek)...
  • by Anonymous Coward
    Over in the UK they had a scheme running years before all these lotteries called the Premium Bond scheme. The idea was that you bought one or more 'bonds' and once a week a random number generator would pull out a bond number and the winner got a million quid.

    I could be wrong on this but the random number machine (called Ernie) was built by a firm called Logitec and used the noise from a neon bulb as a random number generator. Since this was a government project I assume that it worked right.

    Regards

    Ed Almos
  • by Gordonjcp ( 186804 ) on Sunday July 28, 2002 @08:45AM (#3967228) Homepage
    ... if you sample white noise from any source, you'll have a random value. Analogue synthesizers commonly use a reverse-biased diode of some sort to generate noise as it reaches the Zener region. You used to get special "noise diodes" - basically Zener diodes that were chosen because they were extremely noisy.

    A good, simple white noise source is a reverse-biased transistor. Get an NPN transistor, connect the base to negative and the emitter to positive through a large (220k or so) resistor. Look at the voltage on the emitter - noise! Use an amplifier of some kind to get a useful voltage - you're not too bothered about hi-fi here, although theoretically distortion could skew the results (hint - what would clipping do to high and low values? What would crossover distortion do?)
  • i've heard that putting a webcam on a lava lamp and then generating a number from the shape of the lava is a very good randomizer.
  • Ultimate randomness formula
    ((Amount of penile growth in inches * New Low Mortage Rate) / (Weight loss in kilograms (lbs/2.2)+ dollars to be transfered from deposed nigerian dictator))+ (Monthly income from spamming / number hot teens waiting for you)= Random Number
    Try it, it works!

    SD
  • Point a webcam at an ant farm, really busy road, TV tuned to a too-distant station (really noisy picture), or similar. Run the webcam's image files through MD5 or some similar high-quality bit-blender.
  • Get an AM radio and tune it to static.
    input to a sound card.
    One random number generator.
    Just line Tom thought up in Cardnal of the Kremilen.
  • Or any other "analog" input for that matter.

    Just turn the gain up to the max and read the values. It's plenty noisy.

  • Geiger counter! (Score:2, Informative)

    by ke4roh ( 590577 )
    What? This story's been up 3 days and no mention of a geiger counter? Better yet, rather than buying your own geiger counter to watch your own nuclear material decay, how about accessing some random numbers over the internet? HotBits [fourmilab.ch] (which has been mentioned [slashdot.org]) will let you do just that.

    Terry Ritter offers us "Random Number Machines: A Literature Survey [ciphersbyritter.com]" which discusses random numbers from noise and other sources. Well worth a look.

    Ritter expounds on Geiger counters: [ciphersbyritter.com]

    Nisley, E. 1990. BASIC Radioactive Randoms. Circuit Cellar Ink. April/May. 58-68.

    "While pseudo-random (pronounced "fake random") numbers may be OK for computer science types, Real Engineers get Real Random Numbers by timing nuclear disintegrations with a Geiger-Muller detector." "A few months ago I saw the RM-60 Micro Roentgen Radiation Monitor from Aware Electronics [aw-el.com]. It is a Geiger-Muller tube that connects to a PC's parallel or serial port, with the circuitry drawing power from a single interface pin."

    Now they also offer canned software - a random number generator [aw-el.com] based on radioactive decay.

  • I've had this idea for YEARS...

    You have a radio receiver -- but you don't set it to ONE channel, but rather you receive all (or as many as practical) channels at once.

    One radio station isn't completely random -- programs repeat, station IDs are said several times a day, the same commercials come on.

    But the combination of ALL radio stations at any given time is 100% unique and probably will never occurr again as long as the planet is around (assuming a free press).

    Taking the values of all stations simultaneously could result in a neat random seed that is never repeated twice.

    Is this a stupid idea?!?

    Phase 1: Get all radio waves on planet.
    Phase 2: Reduce to a number with enough bits to always be unique (128? 256? 1024?)
    Phase 3: ?
    Phase 4: Profit

The use of money is all the advantage there is to having money. -- B. Franklin

Working...