Languages
[Edit]
PL

JavaScript - Math.random() - przykład metody z dokumentacją

2 points
Created by:
Sylwia
3590

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
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

JavaScript - obiekt Math (PL)

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join