`
zqb666kkk
  • 浏览: 730330 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

在公交车上想出的一个java算法

阅读更多

回老家要做2个小时公交,是在太无聊了,脑海开始跳动波涛,于是产生一个想法:

 

现在 地球上有 1亿个人  有的人编号是 0 有的人编号是1,也有重复编号的人,编号范围是0-100,现在这些人要进入某个体育馆,体育馆的进入权限是这样的,必须是编号为0的人先进然后依次按从小到大进,直到编号为100的人进去后才会关门,禁止其他人进入,在这个过程中比如第一个人编号为0的人已经进去了,第二个一个编号为0的人就不能进来了,

输出的意思 就是:已经进来的这101个人按照编号0到100依次排开来

 

public static void main(String[] args) {
  // TODO Auto-generated method stub
  Set<Integer> nums = new HashSet<Integer>(); //set这个就把这个重复问题解决了
   
  while (nums.size() != 101) {    //这个while循环的作用是 保证生成101个数字

   int tempNum = (int) Math.round(Math.random() * 100);    //这是产生0-100的随机数
   nums.add(tempNum);    //然后添加进set集合

  }
  System.out.println(nums.size());
  Integer[] integerArray = nums.toArray(new Integer[nums.size()]);    //然后把这个不重复的0-100的  set集合转化成integer数组
  Arrays.sort(integerArray);    //通过Arrays.sort进行排序  ,从小到大排序

  for (Integer i : integerArray) {
   System.out.println(i);    //然后输出

  }
 }

 

 

   好开心终于写出来了, 

有更好的方法

进  酷影先锋 网址:javazhou.com进行留言

分享到:
评论
3 楼 zqb666kkk 2011-07-14  
赞 一楼的,我很久没上了 呵呵 ,确实表达了我的想法,比我那个写的好,呵呵
2 楼 lannerK 2011-06-27  
欢迎和我讨论你的算法,我的email : lannerk@qq.com
1 楼 lannerK 2011-06-27  
你这个算法,和你的想法有出入,因为你的想法是 “体育馆的进入权限是这样的,必须是编号为0的人先进然后依次按从小到大进,直到编号为100的人进去后才会关门,禁止其他人进入,在这个过程中比如第一个人编号为0的人已经进去了,第二个一个编号为0的人就不能进来了,”
所以,能加进数组的,就相当于已经进门了,所以加进数组的顺序,应该从 0 1 2 ...这样加进去,而不是加完进去再排序,所以算法应该这样写,并且去掉排序,因为进门的号码都是随机的

public static void main(String args[])throws Exception{

int i = 0;
List<Integer> numsArray = new ArrayList<Integer>();

while(i<101){
int tmp = (int) Math.round(Math.random() * 100);//随机进入场馆的人
System.out.println(tmp);
System.out.println("现在可以进场的号码是:["+i+"]");
if(tmp==i){//随机到是当前可以进入的号码才放行
   numsArray.add(i);
   i++;
}
sleep(1);//程序执行过快,会让cpu吃不消,所以要sleep一下
}
System.out.println("可以关门了,现在输出一下进场的人");
for (Integer num:numsArray) {
   System.out.println(num);//然后输出
  }
}

相关推荐

    java算法大全源码 java算法大全源码

    java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法...

    Java算法集题大全.zip

    Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法...

    JAVA 抽奖算法,JAVA 抽奖算法·

    该JAVA抽奖算法主要通过定义一系列奖品的概率,并基于这些概率计算出具体的抽奖结果。算法能够处理不同数量和不同概率分布的奖品,使得整个抽奖过程更加灵活多变。下面将详细介绍该算法的工作原理、关键步骤以及实现...

    Java算法大全描述java的常用数据结构

    java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用...

    几个推荐算法的java实现

    它首先通过物品相似度构建一个物品邻接网络,然后在此基础上进行SVD,使得推荐更加考虑物品之间的关联性。 - Java实现ItemNeighborSVD需要计算物品间的相似度,可以使用余弦相似度或其他距离度量,再进行SVD处理。...

    JAVA经典算法面试39题及答案

    在 JAVA 编程中,算法设计尤其重要,因为它直接影响着程序的性能和可扩展性。 经典算法面试题目 以下是本资源中的一些经典算法面试题目,每个题目都附带答案和解析: 程序 1:兔子生长问题 题目:古典问题:有...

    Java 算法PDF版

    从给定的文件信息来看,标题“Java算法PDF版”暗示了这是一份关于Java编程语言中的算法应用和实现的资料。尽管描述部分没有提供太多具体的信息,仅表达了分享的意愿,但我们可以根据标题和可能包含的内容来深入探讨...

    遗传算法实现公交车调度MATLAB

    遗传算法是一种模拟自然界生物进化过程的优化方法,它在解决复杂问题时表现出强大的搜索能力和全局优化性能。在公交车调度问题中,遗传算法可以用来优化公交线路的安排、发车时间、车辆分配等,以达到提高服务效率、...

    JAVA近百种算法大全

    Java算法大全是一个包含约100种常见算法的资源库,专为Java程序员设计,用于深入理解和实践编程中的各种算法。这些算法涵盖了数据结构、排序、搜索、图论等多个领域,是提升编程技能和解决问题能力的重要工具。下面...

    java的算法题(一)

    共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题

    java国密算法实现

    SM2的加密过程是通过将明文与椭圆曲线上的一个点进行某种运算得到密文,解密则是逆向运算。这种算法的安全性相对于传统的RSA等非对称加密算法更高,同时计算效率也相对较高。SM2KeyPair.java文件应该包含了SM2算法的...

    公交车路线查询系统 算法 后台数据库设计

    公交车路线查询系统的后台数据库设计是一项复杂的任务,它需要考虑到多个因素,包括数据存储、查询算法、换乘路线算法等。在本文中,我们将逐步深入地介绍公交车路线查询系统后台数据库的设计,包括查询算法、关联...

    java的算法大全集结免费.zip

    Java算法大全集结免费.zip是一个包含了丰富Java算法资源的压缩包,旨在帮助开发者深入理解和掌握Java编程中的各种算法。本文将详细解析其中可能涵盖的关键知识点,包括基础算法、数据结构、排序算法、查找算法以及在...

    java 24 点算法

    一个java24点算法

    Java实现随机森林算法

    在Java中实现随机森林算法通常需要使用机器学习库,比如Weka或者Apache Spark的MLlib。下面我将展示一个使用Weka库的简单示例,来说明如何使用随机森林算法对数据进行分类。 首先,你需要在项目中引入Weka库。如果...

    JAVA 经典算法书集合(1)

    JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1)JAVA 经典算法集合(1),JAVA 经典...

    祖冲之密码算法Java实现

    9. **性能优化**:虽然祖冲之算法本身已经设计得很高效,但在Java中实现时,仍需要注意内存管理和计算性能,以适应可能的大规模数据加密需求。 10. **文档编写**:为了方便其他开发者理解和使用你的实现,需要编写...

    java kmeans聚合算法

    在本例中,描述提到了从Pascal语言转换到Java实现,这意味着我们将讨论如何在Java环境下构建KMeans算法来处理坐标数据,如找出一千个坐标的重心点。 KMeans算法的基本步骤如下: 1. **初始化**:选择K个初始质心...

    人工鱼群算法的java运行代码

    在这个“人工鱼群算法的java运行代码”中,开发者提供了一个使用Java编程语言实现的示例,旨在解决二元二次函数的极值问题。二元二次函数通常具有形式为f(x, y) = ax² + bxy + cy² + dx + ey + f,其中a, b, c, d,...

    公交查询一次换乘算法源码(附效果地址)

    在这个特定场景中,城市中的每个公交站点被视为图中的节点,而公交线路则构成了节点之间的边。每条边可能带有权重,代表了两个站点间的距离或者乘车时间。算法的目标是找到起点到终点的一条路径,满足换乘次数不超过...

Global site tag (gtag.js) - Google Analytics