Generați un număr întreg aleatoriu în p5.js (Programare, Javascript, Html, P5.Js)

Nil folquer covarrubias a intrebat.

Cum pot obține un număr întreg aleatoriu folosind random() funcție în p5.js?

De exemplu, acest cod:

var num = random(0, 1);
console.log(num);

scoate numere zecimale în consolă.

Cum pot obține un număr întreg aleatoriu?

4 răspunsuri
Relajadito

dacă vrei numere întregi de la 0 la 10, ambele inclusiv:

var num = int(random(0, 11));
console.log(num);

explicație:

random(0,11) returnează numere de la 0 la 10.9999999999999… dar niciodată 11

int() convertește aceste numere zecimale în numere întregi

int( random(0,11) ) returnează numere între 0 și 10, ambele inclusiv.

Comentarii

  • Aceasta este abordarea corectă atunci când se utilizează P5.js. +1, dar ar fi grozav dacă ați explica exact de ce funcționează. –  > Por Kevin Workman.
  • Kevin, „random(a,b)” vă oferă numere între a și aproape b, dar niciodată b, deci random(0,11) returnează numere începând de la 0 până la 10.999999 (dar niciodată 11), apoi convertiți numerele în int() ….. astfel încât int(random(0,11)) va returna numere între 0 și 10, ambele inclusiv. –  > Por Relajadito.
Moritz

De ce nu folosiți un simplu JavaScript, așa cum este demonstrat aici?

Excluzând valoarea maximă:

function getRndInteger(min, max) {
    return Math.floor(random(min, max)) + min;
}

Inclusiv limite:

function getRndInteger(min, max) {
    return Math.floor(random(min + 1, max)) + min;
}

Comentarii

  • Voiam să postez (aproape) același lucru. El se referă la funcția p5 random, dar aceasta ar trebui să funcționeze la fel. Trebuie doar să înlocuiți Math.random() * (max - min) cu random(min, max) –  > Por SourceOverflow.
Owen

p5.js random() va returna întotdeauna un număr în virgulă mobilă (aka. număr zecimal). Dacă doriți un număr întreg, puteți utiliza JavaScript Math.round() pentru a rotunji numărul la cel mai apropiat număr întreg.

Pentru a obține un zero sau unu. Cea mai bună metodă este:

Math.round(random());

De asemenea, puteți utiliza int() pentru ca JavaScript să convertească numărul într-un număr întreg, dar acesta are o problemă majoră în care ignoră pur și simplu zecimalele, rotunjind, de fapt, numărul în jos.
Aceasta este o problemă cu p5.js random() deoarece random() va returna un număr aleatoriu de la minim până la dar fără a include maximul. Maximul din random(0, 1) este 0,99999… ceea ce înseamnă că int() se convertește întotdeauna la 0;

Aceasta înseamnă, de exemplu:

  • random() nu va returna niciodată 1. Măsoară int(random()) întoarce întotdeauna 0
  • random(0, 15) nu va returna niciodată 15. Adică int(random(15)) nu va returna niciodată 15

Valkyrie

Deci, cum aș face acest lucru, este să atribui un număr aleatoriu la o variabilă.

DE EX.

var r = Math.floor(random(0,11));
console.log(r);

-Valkyrie

Comentarii

  • Bine ați venit pe stackoverflow. Floor nu rotunjește, chiar dacă face ceea ce dorim aici. Funcția Math.floor() returnează cel mai mare număr întreg mai mic sau egal cu un număr dat. De asemenea, ar fi bine să rețineți că pentru a folosi metoda p5.js random vom avea nevoie și de funcția setup(){} definită, deoarece metodele p5.js nu sunt disponibile decât în interiorul sau după setup… am putea folosi și p5.js floor în loc de Math.floor pentru a face poate să arate un pic mai frumos… –  > Por Charlie Wallace.
  • Vă mulțumim! Oh, bine, haha… Va trebui să fiu mai atent când vorbesc despre lucruri cu care nu sunt super familiarizat. 🙂 Mulțumesc! –  > Por Valkyrie.