[cacatan] Bangkitkan angka random yang berbeda dari suatu Array


Cuma cacatan, supaya nggak lupa. Maklum sering lupa –‘. Intinya bagaimana menghasilkan angka random yang berbeda dari suatu array atau sebuah deret. Misalkan kita punya array {1,2,3,4,5,6,7,8,9}, kita ingin bangkitkan angka random dari array itu, dengan catatan semua angka harus berbeda alias nggak boleh ada yang sama. Artinya, angka-angka dalam array itu hanya pindah posisi, tapi secara random. Misalnya hasilnya jadi {4,2,6,1,3,8,9,7,5} dst.

Dari hasil gugling, akhirnya ketemu juga kata kuncinya.

Jadi kata kuncinya bukan bangkitkan random, tapi pertukaran posisi saja, alias shuffle -_-‘. Beginilah kalo bukan projremer sok-sokan belajar program, yang gini aja nggak bisa 😀

Ya sudah, programnya kira-kira seperti ini:

#include <iostream>
#include <cstdlib>   
#include <ctime>     
int main()
{
	srand(time(0));
	int bilAcak[9] = {0,1,2,3,4,5,6,7,8};	//yang mau diacak
	for(int i=0;i<(9-1);i++)
	{
		int r, temp;
		r = i + (rand() % (9-i));
		temp = bilAcak[i];
		bilAcak[i] = bilAcak[r];
		bilAcak[r] = temp;
	}
	return 0;
}

Sumber dari sini


0 responses to “[cacatan] Bangkitkan angka random yang berbeda dari suatu Array”

Ada komentar?

This site uses Akismet to reduce spam. Learn how your comment data is processed.