Generate non-negative random value slightly above or below a number

a coder

I need to slightly scramble real numbers in a report. The values are typically between 0 and 1000, with most being small numbers containing decimals with a scale of 2.

Some examples:

32.1
0.10
0.02
0.01

I put together this simple function to scramble the values slightly:

function tickle_int($v)
{
    $tickled = $v + (mt_rand(-40, 40) / 100);

    if ($tickled==$v)
    {
        $tickled = tickle_int($v);
    }
    return $tickled;
}

But I'm finding that the returned value is often negative. If I change the low value of mt_rand to 0, I only get scrambled values that are greater than the original value, reducing randomness.

How could this function be modified to only return a non-negative value that is randomly above or below the passed input?

Edit to add I need to avoid 0. The scrambled value needs to be non-negative and not zero. The kicker is passing .01. I need a way of randomzing that to values such as .009, .02, .011, ect -- while continuing to significantly randomize larger values.

hasansino

Limit it:

$tickled = $v + ( mt_rand( $v*(-1), 40) / 100 );

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Generate random number - Higher value

From Dev

Generate random number between 0 and 1 with (negative)exponential distribution

From Dev

Generate random number after value in bash

From Dev

Generate a random number in LibGDX

From Dev

Generate random number in Laravel

From Dev

Php random number generate

From Dev

Generate random number in delphi

From Dev

Generate random number of divs

From Dev

SQL Generate Random Number

From Dev

Generate random number not working

From Dev

Generate a Random Number and Return it

From Dev

Set random negative number with Random Functions in Jmeter?

From Dev

How to generate random positive and negative numbers in VBA

From Dev

How to bin frequency above and below a value

From Dev

Catch values above or below integer value in PHP

From Dev

Get row, or nearest row above and below a value

From Dev

How to read rows above and below a specified value

From Dev

Delete lines with value below (or above) threshold

From Dev

Selecting all values above a threshold and then a random sample of the values below the threshold

From Dev

get nearest tens-place number above and below any number

From Dev

PHP Scripts Encapsulating Returned JSON Array with Number Above and Number Below

From Dev

get nearest tens-place number above and below any number

From Java

Generate random number in range(java)

From Dev

Generate random number in LESS CSS?

From Java

How to generate a random number in Elixir?

From Dev

Generate random 6 digit number

From Dev

Generate random number in .bashrc alias

From Dev

Generate random number but not assigned UIButton

From Dev

Generate BIG random number php

Related Related

HotTag

Archive