int main(int argc,char *argv[])
{
	int N=atoi(argv[1]),M=atoi(argv[2]);
	int i,j,*count,result;
	double lambda=8;

	count=malloc((N+1)*sizeof(int));
	srand((unsigned)time(NULL));

	for(i=1;i<=M;i++){
		result=0;

		for(j=1;j<=N;j++)
			if(heads(N,lambda))
				result++;

		count[result]++;
	}

	for(i=0;i<=N;i++){
		printf("%2d: ",i);
		for(j=0;j<count[i];j+=10)
			putchar('*');
		putchar('\n');
	}	

	return(0);
}
Beispiel #2
0
int main()
{
    int i;
    int j;
    int cnt;
    int N = 32;
    int M = 1000;
    int *f;
    f = malloc((N+1) * sizeof *f);
    assert(f);
    memset(f, 0, sizeof *f * (N+1));

    for (i = 0; i < M; i++, f[cnt]++) {
        for (cnt = 0, j = 0; j <= N; j++) {
            if (heads()) {
                cnt++;
            }
        }
    }

    for (j = 0; j <= N; j++) {
        printf("%2d ", j);

        for (i = 0; i < f[j]; i += 10) {
            putchar('*');
        }

        putchar('\n');
    }

    return 0;
}
Beispiel #3
0
bool UnformatImage (const std::string &path, Range range)
{
	auto disk = std::make_shared<Disk>();
	if (!ReadImage(path, disk))
		return false;

	ValidateRange(range, MAX_TRACKS, MAX_SIDES, disk->cyls(), disk->heads());

	range.each([&] (const CylHead &cylhead) {
		if (!g_fAbort)
			disk->write_track(cylhead, Track());
	});

	return WriteImage(path, disk);
}
Beispiel #4
0
bool CreateImage (const std::string &path, Range range)
{
	auto disk = std::make_shared<Disk>();

	// Start with legacy default formats, with automatic gap 3
	Format fmt = IsFileExt(path, "cpm") ? RegularFormat::ProDos : RegularFormat::MGT;
	fmt.gap3 = 0;

	// Allow everything about the format to be overridden, but check it
	fmt.Override(true);
	fmt.Validate();
	ValidateRange(range, MAX_TRACKS, MAX_SIDES);

	// Set the disk label, if supplied
	if (!opt.label.empty())
		disk->metadata["label"] = opt.label;

	// Extend or format the disk
	if (opt.noformat)
		disk->write_track(CylHead(range.cyl_end - 1, range.head_end - 1), Track());
	else
		disk->format(fmt);

	// Write to the output disk image
	WriteImage(path, disk);

	// Report the new disk parameters, unless it's already been displayed (raw)
	if (!IsFileExt(path, "raw"))
	{
		auto cyls = disk->cyls();
		auto heads = disk->heads();

		if (opt.noformat)
			util::cout << util::fmt("Created %2u cyl%s, %u head%s, unformatted.\n", cyls, (cyls == 1) ? "" : "s", heads, (heads == 1) ? "" : "s");
		else
		{
			util::cout << util::fmt("Created %2u cyl%s, %u head%s, %2u sector%s/track, %4u bytes/sector\n",
									cyls, (cyls == 1) ? "" : "s", heads, (heads == 1) ? "" : "s",
									fmt.sectors, (fmt.sectors == 1) ? "" : "s", fmt.sector_size());
		}
	}

	return true;
}
Beispiel #5
0
main(int argc,char *argv[])
{
		int i,j,cnt;
		int N = atoi(argv[1]), M = atoi(argv[2]);
		int *f = malloc((N+1)*sizeof(int));
		for(j = 0;j <= N;j++)
				f[j] = 0;
		for(i = 0;i < M;i++,f[cnt]++)
				for(cnt = 0,j = 0;j <= N;j++)
						if(heads())
								cnt++;
		for(j = 0;j <= N;j++)
		{
				printf("%2d ",j);
				for(i = 0;i < f[j];i+=10)
						printf("*");
				printf("\n");
		}
}
Beispiel #6
0
int main(int argc, char *argv[])
{
	int i, j, cnt;
	int N = atoi(argv[1]), M = atoi(argv[2]);
	int *f = (int *)malloc((N + 1) * sizeof(int));
	for (j = 0; j <= N; j++) 
		f[j] = 0;
	for (i = 0; i < M; i++, f[cnt]++)
		// 总共做 M 次实验,每次抛 N 次硬币
		// cnt 代表 N 次中 heads 的次数
		// 上层循环中,f[cnt]++,即统计 heads 为 cnt 
		// 次数 + 1;每次下层循环中 cnt 初始化为 0
		for (cnt = 0, j = 0; j <= N; j++)
			if (heads()) cnt++;
	for (j = 0; j <= N; j++) {
		printf("%2d ", j);
		for (i = 0; i < f[j]; i += 10)
			printf("*");
		printf("\n");
	}
	return 0;
}	
int main(void)
{
  int i, j, cnt, p;
  int *f = malloc((N+1) * sizeof(int));

  srand(time(NULL));
  printf("Enter the probability p: ");
  scanf("%d", &p);
  for(i = 0; i <= N; i++)
    f[i] = 0;
  for(i = 0; i < M; i++, f[cnt]++)
    for (cnt = 0, j = 0; j <= N; j++)
      if (heads(p))
	cnt++;
  for (j = 0; j <= N; j++)
    {
      printf("%2d ", j);
      for (i = 0; i < f[j]; i+=10)
	printf("*");
      printf("\n");
    }
  return 0;
}
Beispiel #8
0
int
main(int argc, char *argv[])
{ 
    int i, j, cnt;
    int N, M;

	if (argc != 3) {
		fprintf(stderr, "Usage: <coin_toss_count> <nloops>\n");
		exit(1);
	}

    N = atoi(argv[1]);
   	M = atoi(argv[2]);

    int *f = malloc((N+1) * sizeof(int));
	if (f == NULL) {
		fprintf(stderr, "Insufficient memory.\n");
		exit(1);
	}

    for (j = 0; j <= N; j++) 
		f[j] = 0;

    for (i = 0; i < M; i++, f[cnt]++)
    	for (cnt = 0, j = 0; j < N; j++) 
        	if (heads()) 
				cnt++;

    for (j = 0; j <= N; j++) {
        printf("%2d ", j);
        for (i = 0; i < f[j]; i+=10) 
			printf("*");
        printf("\n");
	}

	return 0;
}