模拟抛硬币(C语言实现)
实现代码:
#include<stdio.h>
#include<stdlib.h> int heads()
{
return rand() < RAND_MAX/;
} int main(int argc, char *argv[])
{
int i,j,cnt;
int N = atoi(argv[]), M = atoi(argv[]);
int *f = malloc((N+)*sizeof(int)); for(j=; j<=N; j++) f[j] = ;
for(i=; i<M; i++, f[cnt]++)
for(cnt=, j=; j<N; j++)//j<=N on book.
if(heads())cnt++; for(j=; j<=N; j++)
{
printf("%2d ", j);
for(i=; i<f[j]; i+=) printf("*");
printf("\n");
} system("pause");
return ;
}
该程序引自《算法:C语言实现(第1~4部分)》,主要学习基于计算出的值作为数组索引的操作。
第17行代码中注释处为做的修改,原书中为j<=N,我认为应该为j<N,否则假如heads()的返回值一直为真即抛硬币结果永远为正面,则参数cnt的值最后结果为N+1, 超出最大可能出现的次数。
将代码保存为coin.c,编译生成coin.exe. 假设模拟1000次的“抛硬币32次”,即N=32,M=1000,通过命令行向main()函数传递这两个参数并执行,结果如下:
D:\>coin.exe 32 1000
6 *
7 *
8 *
9 *
10 **
11 ****
12 ******
13 ********
14 ************
15 *************
16 **************
17 *************
18 *************
19 ********
20 ******
21 ***
22 *
23 *
24 *
25 *
请按任意键继续. . .
图中每个星号代表10次出现正面。
假设模拟10000次的“抛硬币32次”,即N=32,M=10000,并将代码中第23行i+=10改为i+=20后重新编译生成coin.exe,通过命令行向main()函数传递N、M两个参数并执行,其结果如下:
D:\>coin.exe 32 10000
0
1
2
3
4
5
6 *
7 *
8 **
9 ****
10 *********
11 ***************
12 ****************************
13 ****************************************
14 *****************************************************
15 ********************************************************************
16 ***************************************************************************
17 ******************************************************************
18 *********************************************************
19 ****************************************
20 **************************
21 *************
22 ********
23 ***
24 *
25 *
26 *
27
28 *
29
30
31
32
请按任意键继续. . .
参考文献:《算法:C语言实现(第1~4部分)》,机械工业出版社,2011.8
模拟抛硬币(C语言实现)的更多相关文章
- [CSP-S模拟测试]:抛硬币(DP)
题目背景 小$A$和小$B$是一对好朋友,他们经常一起愉快的玩耍.最近小$B$沉迷于**师手游,天天刷本,根本无心搞学习.但是小$B$已经入坑了几个月,却一次都没有抽到$SSR$,让他非常怀疑人生.勤 ...
- HZOI20190908模拟40 队长快跑,影魔,抛硬币 题解
题面:https://www.cnblogs.com/Juve/articles/11487699.html 队长快跑: 权值线段树与dp yy的不错 #include<iostream> ...
- NOIP模拟14「队长快跑·影魔·抛硬币」
T1:队长快跑 基本思路: 离散化·DP·数据结构优化DP 这三个我都没想到....气死. 定义状态数组:\(c[i][j]\)表示在i时最小的a值是j时可以摧毁的最多的水晶数. 那么 ...
- js模拟抛出球运动
js练手之模拟水平抛球运动 -匀加速运动 -匀减速运动 模拟运动有些基本的思路,当前所在点的坐标,元素的长宽是多少,向右/向下运动x/y增加,向上/向左运动x/y减少,运动的路程是多少,用什么方程进行 ...
- bzoj 4830: [Hnoi2017]抛硬币 [范德蒙德卷积 扩展lucas]
4830: [Hnoi2017]抛硬币 题意:A投a次硬币,B投b次硬币,a比b正面朝上次数多的方案数,模\(10^k\). \(b \le a \le b+10000 \le 10^{15}, k ...
- [HNOI 2017]抛硬币
Description 题库链接 两人抛硬币一人 \(a\) 次,一人 \(b\) 次.记正面朝上多的为胜.问抛出 \(a\) 次的人胜出的方案数. \(1\le a,b\le 10^{15},b\l ...
- bzoj 4830: [Hnoi2017]抛硬币
Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于**师手游,天天刷本,根本无心搞学习.但是 已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A ...
- [AH/HNOI2017]抛硬币
题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生.勤勉的小 A ...
- bzoj4830 hnoi2017 抛硬币
题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生.勤勉的小 A ...
随机推荐
- 实例源码--Android图片滚动切换效果
下载源码 技术要点: 1.图片滚动切换技术 2.详细的源码注释 ...... 详细介绍: 1.图片滚动切换技术 本套源码实现了类似于网站图片滚动推广效果,效果不错,很不错的参考源码 2.源码目录 运 ...
- Golang学习 - unicode/utf8 包
------------------------------------------------------------ // 编码所需的基本数字 const ( RuneError = '\uFFF ...
- Django添加模型无法数据迁移解决方法
用Django开发一款博客,按照教程一步步写下来,发现当我创建一个模型blogpost的时候,使用数据迁移 python manage.py migrate 提示 Operations to perf ...
- redis源码学习
上帝禁区 http://blog.csdn.net/a600423444/article/details/8944601
- Java再学习——关于ConcurrentHashMap
ConcurrentHashMap提供了和Hashtable以及SynchronizedMap中所不同的锁机制. 1,在并发方面, ConcurrentHashMap提供了好得多的并发性.多个读操作几 ...
- BootStrap2学习日记20---定制缩略图
先看看效果: 代码: <ul class="thumbnails"> <li class="span3"> <div class= ...
- Android(java)学习笔记66:实现Runnable接口创建线程 和 使用Callable和Future创建线程
1. 前面说的线程的实现是新写一个子类继承Thread: 是将类声明为 Thread 的子类.该子类应重写 Thread 类的 run 方法.接下来可以分配并启动该子类的实例 2. 这里说的方案2是指 ...
- Oracle 基础——索引
一.索引 索引是一种快速访问数据的途径,可提高数据库性能.索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据,就像书的目录,可以快速查找所需的信息,无须阅读整本书. 二.索引存在的问题 ...
- 【安卓面试题】Activity和Task的启动模式有哪些?每种含义是什么?举例说明各自的应用场景
Activity和Task的启动模式有哪些?每种含义是什么?举例说明各自的应用场景 Activity的启动模式 (Launchmode) 有4种 1.standard 默认模式,不需要配置 含义: 启 ...
- java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
***************************错误提示************************************************ SEVERE: A child cont ...