Sabtu, 12 April 2014

Function Raid akan menghasilkan nilai interger antara 0 dan Rand_max yang akan didefinisikan didalam c yang bernilai 32.767. Nilai yang dihasilkan oleh Rand sendiri akan ditingkatkan dan bergeser dengan tujuan menghasilkan nilai yang berkisar tertentu.  Prototipe sendiri mempunyai tugas dalam rand dan srand yang ada di dalam <stdlib.h>.
Fungsi Srand di C digunakan untuk mengacak sebuah program tertentu. Srand biasanya dimasukan didalam program setelah dilakukanya debugged. Debugging berfungsi untuk menghilangkan Srand, hal ini digunakan untuk memastikan penggulangan, yang paling penting untu memastikan koreksi ke program generasi nomor acak bekerja dengan baik.
Dalam pengacakan tidak perlu memasukan seed, tetapi menggunakan srand. Rumus dalam pengeseran nomor acak adalah : n = a + rand ( ) % b .

Contoh Program: Rolling a Six-Sided Die 6000 Times
/* Fig. 5.8: fig05_08.c
 Roll a six-sided die 6000 times */
 #include <stdio.h>
 #include <stdlib.h>

 /* function main begins program execution */
 int main( void )
 {
 int frequency1 = 0; /* rolled 1 counter */
 int frequency2 = 0; /* rolled 2 counter */
 int frequency3 = 0; /* rolled 3 counter */
 int frequency4 = 0; /* rolled 4 counter */
 int frequency5 = 0; /* rolled 5 counter */
 int frequency6 = 0; /* rolled 6 counter */

 int roll; /* roll counter, value 1 to 6000 */
 int face; /* represents one roll of the die, value 1 to 6 */

 /* loop 6000 times and summarize results */
 for ( roll = 1; roll <= 6000; roll++ ) {
 face = 1 + rand() % 6; /* random number from 1 to 6 */

 /* determine face value and increment appropriate counter */
 switch ( face ) {

 case 1: /* rolled 1 */
 ++frequency1;
 break;

 case 2: /* rolled 2 */
 ++frequency2;
 break;

 case 3: /* rolled 3 */
 ++frequency3;
 break;

 case 4: /* rolled 4 */
 ++frequency4;
 break;

 case 5: /* rolled 5 */
 ++frequency5;
 break;

 case 6: /* rolled 6 */
 ++frequency6;
 break; /* optional */
 } /* end switch */
 } /* end for */

 /* display results in tabular format */
 printf( " \n", "Face", "Frequency" );
 printf( " 1%13d\n", frequency1 );
 printf( " 2%13d\n", frequency2 );
 printf( " 3%13d\n", frequency3 );
 printf( " 4%13d\n", frequency4 );
 printf( " 5%13d\n", frequency5 );
 printf( " 6%13d\n", frequency6 );
 return 0; /* indicates successful termination */
 } /* end main */


Output: 

0 komentar:

Posting Komentar