Una immagine random

Il seguente programma random.c scrive una immagine random su un file. La istruzione srandom(time(NULL)); è necessaria all'inizio per inizializzare il generatore di numeri random. Dopo aver aperto il file, si determinano altezza e larghezza dell'immagine sempre come numeri random. Per ogni punto dell'immagine, si decide se deve essere nero o bianco semplicemente usando il generatore di numeri casuali. Si ricorda che il risultato della espressione random()%n, in cui n è un numero intero, ritorna un numero casuale compreso fra 0 ed n-1.

/*
  Scrive una bitmap random.
*/

#include<stdlib.h>
#include<stdio.h>
#include<time.h>

int main() {
  FILE *fd;

  int x, y;
  int w, h;


		/* inizializza il generatore casuale */
  srandom(time(NULL));

		/* apre il file in scrittura */
  fd=fopen("test.pbm", "w");
  if(fd==NULL) {
    perror("Errore in apertura del file");
    exit(1);
  }

		/* determina larghezza e altezza */
  w=random()%300;
  h=random()%300;

		/* intestazione */
  fprintf(fd, "P1 %d %d\n", w, h);

		/* scrive la bitmap su file */
  for(y=h-1; y>=0; y--)
    for(x=0; x<=w-1; x++)
      if(random()%2)
        fprintf(fd, "1\n");
      else
        fprintf(fd, "0\n");

		/* chiude il file */
  fclose(fd);

  return 0;
}

Un esempio di immagine prodotta è qui sotto.