有些看似无序的数学游戏问题,通过Java的窗口类进行进行有形的具体模拟,你就会发现其中的奇妙之处,比方说下面的一个题目:
在一个二维坐标平面上,先随机选定四个点,依次标记为1,2,3,4,并记录它们各自的坐标值,我们把其中的第1点作为游戏点,其余的三个点作为“掷骰子”点,游戏规则是这样的:从其余的三个点(2、3、4)中随机选出一个点,求出这个点与游戏点的中点坐标,并把这个中点作为新的游戏点,再从另外的三个点(2、3、4)中随机选出一个点,进而在求出这个点与游戏点的中点坐标,并把这个中点重新作为新的游戏点,依次类推游戏进行下去,问最后这些游戏点所组成的图案是否是杂乱无章的,如果不是你能想象的出来它的大概图案吗?
我编写了一个模拟程序,通过调用java.swing.JFrame类进行模拟演示
本程序的主要知识点有:
1、调用随机函数
2、调用画布图像
3、利用数学公式求出中点坐标
4、调用drawOval方法将中点所指定的画布坐标用一个像素的的黑圆点填充
5、添加开始按钮及相应的监听器,每按一次键,循环填充像素1000次
进行程序演示的效果图如下:
点击一次“开始”
点击两次“开始”
点击四次“开始”
看了这些图片,还是感到比较奇妙的,无序中却又有如此奇怪的有序
详细的程序代码,请从文件中下载————
- 大小: 30.6 KB
- 大小: 35.3 KB
- 大小: 31.6 KB
- 大小: 49 KB
- 大小: 63.5 KB
- 大小: 50.9 KB
分享到:
相关推荐
就像把一个无序数组中的数据整合到一个有序数组中。 插入排序的特点是运行时间与输入情况有关,对于一个部分有序(数组中元素离最终位置都不远,或者一个有序的大数组加一个小数组)来说速度比较快。其时间复杂度为...
该demo实现了将坐标系中无序的坐标点排列位有序的坐标点,并按照排序后的坐标点组成多边形,并计算该多边形面积。其中也包含坐标系中点在坐标中象限的划分和qt的路径绘图,通过QPainterPath和QPainter绘制图形和QMap...
本项目聚焦于使用Java来模拟彩票的随机选号过程,特别是针对双色球这种彩票类型。双色球是中国非常受欢迎的一种彩票玩法,其特点是需要选取6个红球和1个蓝球,红球范围从1到33,蓝球范围从1到16。 首先,我们需要...
以下是对标题和描述中提及的知识点的详细解释: 1. **表**:表是一种基本的数据结构,通常用于存储有序或无序的数据集合。在Java中,ArrayList和LinkedList是最常见的表实现,分别基于动态数组和链表。 2. **栈**...
* 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。
模拟退火算法的爬山法是一种贪婪的方法,对于一个优化问题,其目标是要找到函数的最大值,若初始化时,初始点的位置在C CC处,则会寻找到附近的局部最大值A AA点处,由于A AA点出是一个局部最大值点,故对于爬山法来...
选择排序: 每次在“无序”队列中选择“最小值”,放在有序队列最后,并从无序队列中删除该值。
MATLAB中的`randperm`函数可以生成一个无序的整数序列,用于重新排列牌的顺序,模拟洗牌效果。 4. **发牌过程**:斗地主游戏通常由三个玩家参与,每个玩家先发17张牌。我们可以通过切片操作将洗好的牌数组分为三...
插入排序: * 始终定义第一个元素为有序, 将无序元素 * 逐个插入到有序排列之中,不断的移动数据, * 空出一个适当的位置,把待插入的元素放到里 * 面去。
将无序列构建成一个堆,根据升序降序需求选择大顶堆或小顶堆 * 大顶堆:从下至上升序 * 小顶堆:从下至上降序 * 2.将堆顶元素与末尾元素交换 * 3.重新调整结构,满足堆定义(大顶堆或小顶堆),然后继续交换堆顶...
这是自动生成不重复主键的代码包,直接导包进入程序即可使用,帮助生成由字母数字组成的16位id号,可以用于数据库主键存储(使用数据库自增主键始终有问题,不适合大型程序的使用),该代码包运用于很多大型企业级...
在Java编程语言中,模拟斗地主游戏的洗牌、发牌和看牌过程是一项有趣的实践,这有助于加深对集合框架的理解。在这个项目中,主要使用了三种集合类:HashMap、ArrayList和TreeSet,它们各自有其独特的特性和用途。 ...
Redis是Java面试中常见的一项...掌握以上知识点,并结合实际项目经验,将有助于你在Java面试中应对Redis相关的提问。在准备过程中,不仅要理解概念,还要关注实践中的细节和陷阱,以展示你的专业素养和解决问题的能力。
电梯在服务楼层时,会按照一定的策略上下移动,要么从底层往上服务,要么从顶层往下服务,避免反复无序的移动。在磁盘调度中,这个策略同样适用:磁头沿着磁盘的半径方向,要么从内圈向外圈移动,要么从外圈向内圈...
### Java数据结构与经典算法详解 #### 一、大O表示法 大O表示法是一种用来描述算法效率的数学符号,它关注的是算法执行时间的增长率。大O表示法可以帮助我们理解随着输入规模(通常用N表示)的增大,算法执行时间...
- **HashSet与HashMap**:无序集合和键值对集合,适用于快速查找和去重。 5. **输入/输出(I/O)** - **流**:Java I/O基于流的概念,包括字符流和字节流,用于读写文件或网络数据。 - **文件操作**:学习如何...
蒙特卡洛模拟电动汽车无序充电,基于起始充电时刻,充电频率,充电场景
这份名为“115个Java面试题和答案——终极(上)(1).rar”的压缩包文件,显然是一个宝贵的资源,它包含了大量针对Java程序员的面试问题及其解答。这份文档(115个Java面试题和答案——终极(上)(1).docx)涵盖了从...
4.2.2 无序列表的符号类型——type 67 4.3 使用有序列表 69 4.3.1 有序列表标记——ol 69 4.3.2 有序列表的属性——type 70 4.3.3 有序列表的起始数值——start 72 4.4 定义列表标记——dl 73 4.5 ...