本系列博客习题来自《算法(第四版)》,算是本人的读书笔记,如果有人在读这本书的,欢迎大家多多交流。为了方便讨论,本人新建了一个微信群(算法交流),想要加入的,请添加我的微信号:zhujinhui207407 谢谢。另外,本人的个人博客 http://www.kyson.cn 也在不停的更新中,欢迎一起讨论
知识点
- 计数器
- 点的绘制
题目
1.2.10 编写一个类 VisualCounter,支持加一和减一操作。它的构造函数接受两个参数 N 和 max,其中 N 指定了操作的最大次数, max 指定了计数器的最大绝对值。作为副作用,用图像显示每次计数器变化后的值。
1.2.10 Develop a class VisualCounter that allows both increment and decrement operations. Take two arguments N and max in the constructor, where N specifies the maximum number of operations and max specifies the maximum absolute value for the counter. As a side effect, create a plot showing the value of the counter each time its tally changes.
public class VisualCounter {
private long N;
private double total;
public VisualCounter(long trails, double max) {
StdDraw.setXscale(0, trails);
StdDraw.setYscale(-max, max);
StdDraw.setPenRadius(.005f);
}
public void increment() {
N++;
total ++;
StdDraw.setPenColor(StdDraw.DARK_GRAY);
StdDraw.point(N, total);
}
public void decrement() {
N++;
total --;
StdDraw.setPenColor(StdDraw.DARK_GRAY);
StdDraw.point(N, total);
}
public static void main(String[] args) {
VisualCounter counter = new VisualCounter(300, 150.0);
for (int i = 0; i < 10000; i++)
if (StdRandom.random() > 0.5) {
counter.increment();;
}else {
counter.decrement();;
}
StdOut.println(counter);
}
}
代码索引
视频讲解
广告
我的首款个人开发的APP壁纸宝贝上线了,欢迎大家下载。
本人所有简书的算法文章已经移入小专栏:算法四习题详解,欢迎大家订阅