Languages
[Edit]
PL

JavaScript - Math.random() - przyk┼éad metody z dokumentacj─ů

2 points
Created by:
Sylwia
1337

Math.random()┬áta┬áfunkcja zwraca zmiennoprzecinkow─ů, pseudolosow─ů liczb─Ö z przedzia┼éu od [0,1), 0 (w┼é─ůcznie) do 1 (wy┼é─ůcznie).

Na podstawie tej funkcji mo┼╝emy uzyska─ç liczb─Ö losow─ů w zakresie, jak wida─ç na poni┼╝szych przyk┼éadach.

// ONLINE-RUNNER:browser;

console.log( Math.random() ); // 0.9100486004606172
console.log( Math.random() ); // 0.8630710741089413
console.log( Math.random() ); // 0.8052253695967542

function randomInt(min, max) {
	return min + Math.floor((max - min) * Math.random());
}

function randomFloat(min, max) {
    return min + (max - min) * Math.random();
}

console.log( randomInt( 10, 20) ); // 12
console.log( randomInt(-10, 10) ); // -4

console.log( randomFloat( 10, 20) ); // 14.514897223860018
console.log( randomFloat(-10, 10) ); // -6.645075993092653

1. Dockumentacja

SkładniaMath.random()
Parametry Ta metoda nie przyjmuje żadnych argumentów.
WynikWarto┼Ť─ç liczby zmiennoprzecinkowej (warto┼Ť─ç pierwotna).
Opisrandomjest metod─ů statyczn─ů, kt├│ra zwraca losow─ů liczb─Ö zmiennoprzecinkow─ů z zakresu <0,1) - w┼é─ůcznie z 0 i wy┼é─ůczaj─ůc 1.

2. Przykłady niestandardowych metod losowych

2.1. Generowanie liczby losowej, zmiennoprzecinowej w zakresie (wy┼é─ůczna warto┼Ť─ç maksymalna)

Ten przyk┼éad pokazuje,┬álosow─ů┬áliczb─Ö┬áz wy┼é─ůcznym max. randomzeFloat() metoda jest nadpisywana w nast─Öpuj─ůcy spos├│b:

  • randomzeFloat()┬á- generuje liczby w zakresie 0 do┬áNumber.MAX_VALUE (wy┼é─ůcznie),
  • randomzeFloat(max)┬á- generuje liczby w zakresie 0┬ádo┬ámax┬á(wy┼é─ůcznie) - max warto┼Ť─ç musi by─ç dodatnia,
  • randomzeFloat(min, max)┬á- generuje liczby w zakresie min┬ádo┬ámax┬á(wy┼é─ůcznie).
// ONLINE-RUNNER:browser;

/*
	w┼é─ůcznie min (wynik mo┼╝e by─ç r├│wny warto┼Ťci min)
    wy┼é─ůcznie max (wynik nie b─Ödzie mia┼é maksymalnej warto┼Ťci)
*/
function randomizeFloat(min, max) {
  	if (max == null) {
  	  	if (min <= 0) {
  	  	  	throw new Error('Max value must be positive.');
  	  	}

    	max = (min == null ? Number.MAX_VALUE : min);
      	min = 0.0;
    }
  
  	if (min >= max) {
    	throw new Error("Incorrect arguments.");
    }

    return min + (max - min) * Math.random();
}

// Przykład:

console.log(randomizeFloat()); // 1.67319916301163e+308
console.log(randomizeFloat(5)); // 2.7593705936801918
console.log(randomizeFloat(10, 80)); // 37.54521514384005
console.log(randomizeFloat(-50, 50)); // -30.632843429520975

2.2. Generowanie liczby losowej, zmiennoprzecinowej w zakresie (w┼é─ůcznie z warto┼Ťci─ů maksymaln─ů)

// ONLINE-RUNNER:browser;

// Genreowane warto┼Ťci z przedzia┼éu <0, 1>
function randomizeValue() {
	var value = (1 + 10E-16) * Math.random();
  
  	if (value > 1.0) {
    	return 1.0;
    }
  
  	return value;
}

/*
    w┼é─ůcznie min (wynik mo┼╝e by─ç r├│wny warto┼Ťci min)
    w┼é─ůcznie max (wynik nie b─Ödzie mia┼é warto┼Ťci maksymalnej)
*/
function randomizeFloat(min, max) {
  	if(max == null) {
    	max = (min == null ? Number.MAX_VALUE : min);
      	min = 0.0;
    }
  
  	if(min >= max) {
    	throw new Error("Incorrect arguments.");
    }

    return min + (max - min) * randomizeValue();
}

// Przykład:

console.log(randomizeFloat()); // 1.1960373039711962e+308
console.log(randomizeFloat(5)); // 0.7663988388633522
console.log(randomizeFloat(10, 80)); // 67.81113931017913
console.log(randomizeFloat(-50, 50)); // -13.713816892801674

2.3. Generowanie liczby losowej,┬áca┼ékowitej┬áw┬ázakresie┬á(wy┼é─ůczaj─ůc┬áwarto┼Ť─ç maksymaln─ů)

// ONLINE-RUNNER:browser;

/*
	
    w┼é─ůcznie min (wynik mo┼╝e by─ç r├│wny warto┼Ťci min)
    wy┼é─ůczaj─ůc max (wynik nie b─Ödzie mia┼é maksymalnej warto┼Ťci)
*/
function randomizeInteger(min, max) {
  	if(max == null) {
    	max = (min == null ? Number.MAX_SAFE_INTEGER : min);
      	min = 0;
    }

    min = Math.ceil(min);  // w┼é─ůcznie min
    max = Math.floor(max); // wy┼é─ůczaj─ůc max

  	if(min > max - 1) {
    	throw new Error("Incorrect arguments.");
    }

    return min + Math.floor((max - min) * Math.random());
}

// Przykład:

console.log(randomizeInteger()); // 5547382624322139
console.log(randomizeInteger(5)); // 3
console.log(randomizeInteger(10, 80)); // 62
console.log(randomizeInteger(-50, 50)); // -8

2.4. Generowanie liczby losowej,┬áca┼ékowitej┬áw┬ázakresie (w┼é─ůcznie z warto┼Ťci─ů maksymaln─ů)

// ONLINE-RUNNER:browser;

/*
	
    w┼é─ůcznie min (wynik mo┼╝e by─ç r├│wny warto┼Ťci min)
    w┼é─ůcznie max (wynik nie b─Ödzie mia┼é warto┼Ťci maksymalnej)
*/
function randomizeInteger(min, max) {
  	if(max == null) {
    	max = (min == null ? Number.MAX_SAFE_INTEGER : min);
      	min = 0;
    }

    min = Math.ceil(min);  // w┼é─ůczaj─ůc min
    max = Math.floor(max); // wy┼é─ůczaj─ůc max

  	if(min > max - 1) {
    	throw new Error("Incorrect arguments.");
    }

    return min + Math.floor((max - min + 1) * Math.random());
}

// Przykład:

console.log(randomizeInteger()); // 5918572174489812
console.log(randomizeInteger(5)); // 5
console.log(randomizeInteger(10, 80)); // 60
console.log(randomizeInteger(-50, 50)); // -15

Bibliografia

  1. Generator liczb losowych - Wikipedia
  2. Generator liczb pseudolosowych - Wikipedia
  3. Lista generator├│w liczb losowych - Wikipedia

JavaScript - obiekt Math (PL)

Hey ­čĹő
Would you like to know what we do?
  • Dirask is a friendly IT community for learners, professionals and hobbyists to share their knowledge and help each other in extraordinary easy way.
  • We welcome everyone,
    no matter what the experience,
    no matter how basic the question is,
    this community will help you.