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); }
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; }
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); }
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; }
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"); } }
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; }
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; }