Soal: cara membuat bilangan bulat acak dari rentang tertentu dalam bahasa c

Pembaharuan Terakhir: 09/11/2023

Membuat bilangan bulat acak dalam rentang tertentu dalam bahasa pemrograman C tidak semudah kelihatannya. C sendiri tidak memiliki fungsi khusus untuk hal ini, tetapi C menyediakan berbagai alat yang dapat digabungkan untuk mencapai hal ini. Konsep di balik menghasilkan angka-angka ini berkisar pada penggunaan angka acak dan rentang tertentu.

Secara harfiah, angka acak yang dihasilkan dalam rentang tertentu bisa sangat berguna dalam banyak aplikasi di dunia pemrograman, seperti membuat ID unik, Grafik Komputer, Permainan, Simulasi, Pengujian, dan banyak lagi.

Perpustakaan dan Fungsi dalam Pembuatan Angka Acak

Untuk menghasilkan angka acak di C, kami menggunakan stdlib.h dan waktu.h perpustakaan. NS acak() fungsi adalah bagian dari perpustakaan stdlib.h, dan karena tidak memerlukan argumen apa pun, fungsi ini menghasilkan urutan angka acak yang sama setiap kali kita menjalankan program. Untuk mengatasi hal ini, kami menggunakan pasir() fungsi yang mengubah benih generator pseudo-acak.

#include
#include
#include

int main () {
pasir(waktu(0));
untuk(int i = 0; i<5; i++){ printf(" %d ", rand()); } kembalikan 0; } [/kode]

Solusi: Menghasilkan Angka Acak dalam Rentang Tertentu

Kode di atas akan menghasilkan nomor acak apa pun. Untuk menghasilkan angka acak dalam rentang tertentu, Anda dapat menggunakan rumus ini: (rand() % (atas – bawah + 1)) + lebih rendah di mana bawah adalah batas bawah dan atas adalah batas atas rentang angka acak yang Anda inginkan.

Berikut adalah rincian langkah demi langkah dari keseluruhan proses:

  • Pertama, kami menggunakan waktu() berfungsi untuk mendapatkan waktu sistem saat ini.
  • Kemudian, kami menggunakan pasir() berfungsi untuk menyemai generator acak.
  • Setelah itu, kami menggunakan acak() berfungsi untuk menghasilkan angka acak.
  • Terakhir, kami membawa angka yang dihasilkan ke dalam rentang yang diinginkan menggunakan rumus yang disebutkan di atas.

Berikut ini contoh cuplikan kode:

#include
#include
#include

int main () {
int bawah = 50, atas = 100;
pasir(waktu(0));
for(int i = 0; i<5; i++){ printf(" %d ", (rand() % (atas - bawah + 1)) + bawah); } kembalikan 0; } [/code] Pada cuplikan kode di atas, angka acak yang dihasilkan akan berada dalam kisaran 50 dan 100.

Mengungkap Kode

Perhatikan bahwa kita meneruskan `waktu(0)` ke pasir() fungsi. Ini untuk memastikan bahwa nomor acak kami se-acak mungkin. waktu() mengembalikan waktu kalender saat ini yang berubah setiap detik, oleh karena itu merupakan ide bagus untuk menggunakannya untuk menyemai penghasil nomor acak kami.

Rumus `(rand() % (atas – bawah + 1)) + bawah` mungkin terlihat membingungkan pada pandangan pertama, namun cukup sederhana. acak() menghasilkan nomor acak. Saat kita mengambil modulus bilangan ini dengan `(atas – bawah + 1)`, pada dasarnya kita mendapatkan sisa pembagian bilangan tersebut dengan `(atas – bawah + 1)`. Hasil operasi modulus selalu lebih kecil dari pembaginya. Dengan menambahkan batas bawah, kami memastikan bahwa nomor acak kami setidaknya merupakan batas bawah.

Sekarang Anda dapat menghasilkan angka acak dalam rentang tertentu di C! Selamat Pemrograman!

Pos terkait: