/* algo1_naif.c
créé par Yann Guidon (whygee@f-cpu.org) le 15 septembre 2007
Ce programme génère un histogramme (pour gnuplot)
de taille de fragments générés par un algorithme naïf */

#include <stdio.h>

#define TAILLE_FRAGMENT 64

#define SEND(x)  { histo[x]++; }

int histo[TAILLE_FRAGMENT+1];

int main() {
  int i, taille_bloc;

  /* pour toutes les tailles de paquets de 64 à 2K */
  for  (i=TAILLE_FRAGMENT; i<=TAILLE_FRAGMENT*32; i++) {
    taille_bloc = i;

    /* approche "greedy" : */
    while (taille_bloc > TAILLE_FRAGMENT) {
      SEND(TAILLE_FRAGMENT);
      taille_bloc-=TAILLE_FRAGMENT;
    }
    /* envoie le reste */
    SEND(taille_bloc);
  } 

  /* imprime l'histogramme sur stdout */
  for (i=0; i<=TAILLE_FRAGMENT; i++) {
    printf("%d  %d\n",i, histo[i]);
  }

  return 0;
}
