Jump to content

If Min and Max are the same value then Random() will return 0. What?


Go to solution Solved by Melba23,

Recommended Posts

Posted

https://www.autoitscript.com/autoit3/docs/functions/Random.htm
If Min and Max are the same value then Random() will return 0.
Conceptually, a random function (using integers) is a choice between options. For example, "pick a number between 1 and 10". Random(1,10,1)
If we have only two options, we can still choose. Random(1,2,1). Finally, if our options are reduced to only one, and we must choose, the only solution is to select that single option.
But the AutoIt Random() function simply says that a single option is wrong, and sets the @error flag to non-zero. If someone offers you to drink a) coffee or B) coffee, and you must choose, the answer isn't "I don't know".

I coded a script that made an error before I found out this behavior. I'm going to put an example.

#include <Array.au3>
;Vending machine available beverages
$aDrinks[5] = ["coffee", "water", "juice", "beer", "tea"]
For $n = 1 To 5
    $qty = UBound($aDrinks)
    $r = Random(1, $qty, 1)
    ;If $r = 0 Then $r = 1 ;fix
    ConsoleWrite("I choose: " & $aDrinks[$r - 1] & @CRLF)
    _ArrayDelete($aDrinks, $r - 1)
Next

This machine has a shrinking catalog. The only solution is to use the commented fix.

  • Moderators
  • Solution
Posted

oasis375,

 

  Quote

The only solution is to use the commented fix.

Since July this year (Beta version 3.3.13.10) Random has been modified and if both Max & Min are the same it will now return that value. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...