`
郭广川
  • 浏览: 68819 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

奇妙的无序点——Java模拟

阅读更多

有些看似无序的数学游戏问题,通过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
2
2
分享到:
评论
2 楼 javafound 2010-07-28  
项一个,说有较清楚,呵呵,
1 楼 liucong07170 2010-07-28  
支持一下不容易啊,还要注册,回答问题……

相关推荐

    十大经典排序——java实现(csdn)————程序.pdf

    就像把一个无序数组中的数据整合到一个有序数组中。 插入排序的特点是运行时间与输入情况有关,对于一个部分有序(数组中元素离最终位置都不远,或者一个有序的大数组加一个小数组)来说速度比较快。其时间复杂度为...

    计算多边形面积和无序点排列成多边形

    该demo实现了将坐标系中无序的坐标点排列位有序的坐标点,并按照排序后的坐标点组成多边形,并计算该多边形面积。其中也包含坐标系中点在坐标中象限的划分和qt的路径绘图,通过QPainterPath和QPainter绘制图形和QMap...

    用java写的模拟彩票 随机选号

    本项目聚焦于使用Java来模拟彩票的随机选号过程,特别是针对双色球这种彩票类型。双色球是中国非常受欢迎的一种彩票玩法,其特点是需要选取6个红球和1个蓝球,红球范围从1到33,蓝球范围从1到16。 首先,我们需要...

    数据结构与算法分析Java3rd英文_数据结构与算法分析_

    以下是对标题和描述中提及的知识点的详细解释: 1. **表**:表是一种基本的数据结构,通常用于存储有序或无序的数据集合。在Java中,ArrayList和LinkedList是最常见的表实现,分别基于动态数组和链表。 2. **栈**...

    java算法——冒泡排序

    * 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。

    模拟退火算法+java实现+优化问题

    模拟退火算法的爬山法是一种贪婪的方法,对于一个优化问题,其目标是要找到函数的最大值,若初始化时,初始点的位置在C CC处,则会寻找到附近的局部最大值A AA点处,由于A AA点出是一个局部最大值点,故对于爬山法来...

    java算法——选择排序

    选择排序: 每次在“无序”队列中选择“最小值”,放在有序队列最后,并从无序队列中删除该值。

    问题解决师——模拟斗地主拿到王的概率(蒙特卡洛法)

    MATLAB中的`randperm`函数可以生成一个无序的整数序列,用于重新排列牌的顺序,模拟洗牌效果。 4. **发牌过程**:斗地主游戏通常由三个玩家参与,每个玩家先发17张牌。我们可以通过切片操作将洗好的牌数组分为三...

    java算法——插入排序

    插入排序: * 始终定义第一个元素为有序, 将无序元素 * 逐个插入到有序排列之中,不断的移动数据, * 空出一个适当的位置,把待插入的元素放到里 * 面去。

    java算法——堆排列

    将无序列构建成一个堆,根据升序降序需求选择大顶堆或小顶堆 * 大顶堆:从下至上升序 * 小顶堆:从下至上降序 * 2.将堆顶元素与末尾元素交换 * 3.重新调整结构,满足堆定义(大顶堆或小顶堆),然后继续交换堆顶...

    自动生成不重复无序化id

    这是自动生成不重复主键的代码包,直接导包进入程序即可使用,帮助生成由字母数字组成的16位id号,可以用于数据库主键存储(使用数据库自增主键始终有问题,不适合大型程序的使用),该代码包运用于很多大型企业级...

    java模拟斗地主的洗牌发牌.rar

    在Java编程语言中,模拟斗地主游戏的洗牌、发牌和看牌过程是一项有趣的实践,这有助于加深对集合框架的理解。在这个项目中,主要使用了三种集合类:HashMap、ArrayList和TreeSet,它们各自有其独特的特性和用途。 ...

    java面试——Redis面试专题.zip

    Redis是Java面试中常见的一项...掌握以上知识点,并结合实际项目经验,将有助于你在Java面试中应对Redis相关的提问。在准备过程中,不仅要理解概念,还要关注实践中的细节和陷阱,以展示你的专业素养和解决问题的能力。

    模拟电梯调度算法,实现对磁盘的驱动调度

    电梯在服务楼层时,会按照一定的策略上下移动,要么从底层往上服务,要么从顶层往下服务,避免反复无序的移动。在磁盘调度中,这个策略同样适用:磁头沿着磁盘的半径方向,要么从内圈向外圈移动,要么从外圈向内圈...

    Java数据结构与经典算法——高手必会

    ### Java数据结构与经典算法详解 #### 一、大O表示法 大O表示法是一种用来描述算法效率的数学符号,它关注的是算法执行时间的增长率。大O表示法可以帮助我们理解随着输入规模(通常用N表示)的增大,算法执行时间...

    java程序设计教程课后答案

    - **HashSet与HashMap**:无序集合和键值对集合,适用于快速查找和去重。 5. **输入/输出(I/O)** - **流**:Java I/O基于流的概念,包括字符流和字节流,用于读写文件或网络数据。 - **文件操作**:学习如何...

    EV.zip_充电_汽车_电动汽车 充电_蒙特卡洛场景_蒙特卡洛模拟电动汽车无序充电

    蒙特卡洛模拟电动汽车无序充电,基于起始充电时刻,充电频率,充电场景

    115个Java面试题和答案——终极(上)(1).rar

    这份名为“115个Java面试题和答案——终极(上)(1).rar”的压缩包文件,显然是一个宝贵的资源,它包含了大量针对Java程序员的面试问题及其解答。这份文档(115个Java面试题和答案——终极(上)(1).docx)涵盖了从...

    从入门到精通HTML5——PDF——网盘链接

     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 ...

Global site tag (gtag.js) - Google Analytics