Nomor acak javascript antara 0 dan 1 inklusif

Kasus penggunaan yang paling umum untuk menghasilkan angka acak adalah permainan peluang seperti melempar dadu, mengocok kartu remi, dan memutar roda roulette

Dalam panduan ini, Anda akan mempelajari cara menghasilkan angka acak menggunakan metode

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
0 dengan membuat game dadu mini

Matematika. acak() metode

Objek

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
1 dalam JavaScript adalah objek bawaan yang memiliki properti dan metode untuk melakukan perhitungan matematis

Penggunaan umum objek

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
1 adalah untuk membuat nomor acak menggunakan metode
const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
3

const randomValue = Math.random();
_

Tetapi metode

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
_0 sebenarnya tidak mengembalikan bilangan bulat. Sebagai gantinya, ia mengembalikan nilai floating-point antara 0 (inklusif) dan 1 (eksklusif). Juga, perhatikan bahwa nilai yang dikembalikan dari
const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
0 bersifat acak semu

Angka acak yang dihasilkan oleh

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
0 mungkin tampak acak, tetapi angka tersebut akan berulang dan akhirnya menampilkan pola non-acak selama periode waktu tertentu

Ini karena pembuatan bilangan acak algoritmik tidak pernah bisa benar-benar acak. Inilah mengapa kami menyebutnya pseudo-random number generators (PRNGs)

Untuk mempelajari lebih lanjut tentang metode

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
_0 Anda dapat melihat panduan ini

Fungsi Generator Angka Acak

Sekarang mari gunakan metode

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
_0 untuk membuat fungsi yang akan mengembalikan bilangan bulat acak antara dua nilai (inklusif)

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};

Mari kita pecahkan logikanya di sini

Metode

const getRandomNumber = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};
0 akan mengembalikan angka floating-point antara 0 dan 1 (eksklusif)

Jadi intervalnya adalah sebagai berikut

[0 ................................... 1)

[min ................................... max)

Untuk memfaktorkan interval kedua, kurangi min dari kedua ujungnya. Jadi itu akan memberi Anda interval antara 0 dan

[0 ................................... 1)

[min ................................... max)
0

[0 ................................... 1)

[0 ................................... max - min)

Jadi sekarang, untuk mendapatkan nilai acak Anda akan melakukan hal berikut

const x = Math.random() * (max - min)

Di sini

[0 ................................... 1)

[min ................................... max)
_1 adalah nilai acak

Saat ini,

[0 ................................... 1)

[min ................................... max)
_2 dikecualikan dari interval. Untuk membuatnya inklusif, tambahkan 1. Juga, Anda perlu menambahkan
[0 ................................... 1)

[min ................................... max)
_3 kembali yang telah dikurangi sebelumnya untuk mendapatkan nilai antara
[0 ................................... 1)

[min ................................... max)
4

const x = Math.random() * (max - min + 1) + min

Baiklah, jadi sekarang langkah terakhir yang tersisa adalah memastikan bahwa

[0 ................................... 1)

[min ................................... max)
1 selalu bilangan bulat

const x = Math.floor(Math.random() * (max - min + 1)) + min

Anda dapat menggunakan metode

[0 ................................... 1)

[min ................................... max)
_6 alih-alih
[0 ................................... 1)

[min ................................... max)
7, tetapi itu akan memberi Anda distribusi yang tidak seragam. Ini berarti bahwa
[0 ................................... 1)

[min ................................... max)
_2 dan
[0 ................................... 1)

[min ................................... max)
3 akan memiliki setengah peluang untuk keluar sebagai hasil. Menggunakan
[0 ................................... 1)

[0 ................................... max - min)
_0 akan memberi Anda pemerataan yang sempurna

Jadi sekarang setelah Anda memiliki pemahaman yang adil tentang cara kerja pembuatan acak, mari gunakan fungsi ini untuk mensimulasikan lemparan dadu

Permainan Dadu Bergulir

Di bagian ini, kita akan membuat game dadu mini yang sangat sederhana. Dua pemain memasukkan nama mereka dan akan melempar dadu. Pemain yang dadunya memiliki angka lebih tinggi akan memenangkan putaran tersebut

Pertama, buat fungsi

[0 ................................... 1)

[0 ................................... max - min)
_1 yang mensimulasikan aksi melempar dadu

Di dalam badan fungsi, panggil fungsi

[0 ................................... 1)

[0 ................................... max - min)
_2 dengan
[0 ................................... 1)

[0 ................................... max - min)
3 dan
[0 ................................... 1)

[0 ................................... max - min)
4 sebagai argumen. Ini akan memberi Anda nomor acak apa pun antara 1 dan 6 (keduanya inklusif) seperti cara kerja dadu asli

const rollDice = () => getRandomNumber(1, 6);

Selanjutnya, buat dua bidang input dan tombol seperti yang ditunjukkan di bawah ini

<div id="app">
      <div>
        <input id="player1" placeholder="Enter Player 1 Name" />
      </div>
      <div>
        <input id="player2" placeholder="Enter Player 2 Name" />
      </div>
      <button id="roll">Roll Dice</button>
      <div id="results"></div>
    </div>

Saat tombol 'Lempar Dadu' diklik, dapatkan nama pemain dari kolom input dan panggil fungsi

[0 ................................... 1)

[0 ................................... max - min)
5 untuk setiap pemain

const getRandomNumber = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;


const rollDice = () => getRandomNumber(1, 6);

document.getElementById("roll").addEventListener("click", function () {
  // fetch player names from the input fields
  const player1 = document.getElementById("player1").value;
  const player2 = document.getElementById("player2").value;

  // roll dice for both players
  const player1Score = rollDice();
  const player2Score = rollDice();

  // initialize empty string to store result
  let result = "";

  // determine the result
  if (player1Score > player2Score) {
    result = `${player1} won the round`;
  } else if (player2Score > player1Score) {
    result = `${player2} won the round`;
  } else {
    result = "This round is tied";
  }

  // display the result on the page
  document.getElementById("results").innerHTML = `
  <p>${player1} => ${player1Score}</p>
  <p>${player2} => ${player2Score}</p>
  <p>${result}</p>
  `;
});

Anda dapat memvalidasi kolom nama pemain dan mendandani markup dengan beberapa CSS. Untuk tujuan singkatnya, saya membuatnya sederhana untuk panduan ini

Hanya itu saja. Anda dapat melihat demo di sini

Kesimpulan

Jadi menghasilkan angka acak dalam JavaScript tidak begitu acak. Yang kami lakukan hanyalah mengambil beberapa nomor input, menggunakan beberapa Matematika, dan mengeluarkan nomor acak semu

Untuk sebagian besar aplikasi dan game berbasis browser, keacakan sebanyak ini sudah cukup dan memenuhi tujuannya

Itu saja untuk panduan ini. Tetap aman dan terus membuat kode seperti binatang buas

IKLAN

IKLAN

IKLAN


Nomor acak javascript antara 0 dan 1 inklusif
Vijit Ail

Saya seorang Full Stack Developer yang berbasis di Mumbai yang suka membuat aplikasi modern dan berperforma baik. https. //vijitail. dev/


Jika artikel ini bermanfaat, tweetlah

Belajar kode secara gratis. Kurikulum open source freeCodeCamp telah membantu lebih dari 40.000 orang mendapatkan pekerjaan sebagai pengembang. Memulai

Bagaimana cara mendapatkan angka acak antara 0 dan 1 di JavaScript?

Javascript membuat bilangan acak semu dengan fungsi Matematika. acak() . Fungsi ini tidak memerlukan parameter dan membuat angka desimal acak antara 0 dan 1. Nilai yang dikembalikan mungkin 0, tetapi tidak akan pernah menjadi 1.

Fungsi mana yang mengembalikan angka acak antara 0. 0 dan 1. 0 dimana 0. 0 termasuk tetapi 1. 0 eksklusif dengan Python?

Fungsi random() digunakan untuk menghasilkan angka antara 0. 0 dan 1. 0.

Apakah matematika acak () termasuk 1?

Matematika. metode random() mengembalikan angka acak dari 0 (inklusif) hingga tetapi tidak termasuk 1 (eksklusif) .

Bagaimana saya bisa menghasilkan angka acak dalam rentang tetapi mengecualikan beberapa?

Setelah menghasilkan angka acak, Anda harus mengembalikan "lubang" ke dalam rentang. Hal ini dapat dicapai dengan menambah angka yang dihasilkan selama ada angka yang dikecualikan lebih rendah dari atau sama dengan angka yang dihasilkan . Angka pengecualian yang lebih rendah adalah "lubang" dalam rentang sebelum angka yang dihasilkan.