`
zqb666kkk
  • 浏览: 732492 次
  • 性别: 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算法集题大全.zip

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

    JAVA算法编程题目及答案.doc

    该题目要求学习者编写一个JAVA程序来打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。该题目旨在考察学习者对水仙花数的理解和编程能力。 程序 4:将一个正整数分解质因数 第四...

    java算法全卷(包括基本算法和图算法)

    Java算法全卷涵盖了基本算法和图算法,是学习和提升编程技能的重要资源。...这两部分结合,为Java开发者提供了一个全面的算法学习资源库,无论你是初学者还是经验丰富的开发人员,都能从中受益匪浅。

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

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

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

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

    Java 算法PDF版

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

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

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

    JAVA近百种算法大全

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

    java国密算法实现

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

    java排序算法使用及场景说明

    解决方案 1:首先是这一天,并且是访问百度的日志中的 IP 取出来,逐个写入到一个大文件中,然后采用映射的方法,找出每个小文件中出现频率最大的 IP,最后在这 1000 个最大的 IP 中,找出那个频率最大的 IP。...

    java算法学习手册

    在Java这个强大的编程平台上,掌握算法是提升软件开发效率和质量的关键。下面我们将深入探讨一些核心的算法和数据结构概念,以及它们在Java中的应用。 1. **数据结构基础**:数据结构是存储和组织数据的方式,包括...

    进化策略算法公交车调度MATLAB

    总的来说,这个MATLAB项目为学习和实践进化策略算法提供了一个实用案例,有助于提升在人工智能和优化领域的技能。通过理解和改进这个模型,你可以更好地掌握如何解决复杂的调度问题,比如在城市公共交通系统中的应用...

    Java实现随机森林算法

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

    Java节假日算法(免费)

    Java 节假日算法是指在给定的日期范围内,计算包含假期的天数的算法。在这个算法中,我们可以看到三个类分别是 DateToDate、Vacation 和 WorkDate。下面我们将详细解释这个算法的实现过程。 首先,DateToDate 类中...

    Java各种算法大全

    Java语言在计算机科学领域...通过阅读和分析这个"Java各种算法大全"的源码,不仅可以学习算法的原理,还能了解如何在Java中有效地实现它们。这是一份宝贵的资源,无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    java算法技术手册

    一个实用的java算法技术手册,适合各类JAVA开发人员参考和使用。

    java协同过滤推荐算法

    综上所述,Java协同过滤推荐算法是构建个性化推荐系统的重要工具,不仅包括基于用户和基于物品的两种基本方法,还涉及到数据预处理、相似度计算、预测评分和推荐生成等多个环节。在Java环境下,可以通过优化和扩展来...

    java mrp算法实现

    【Java MRP算法实现】是基于Java编程语言构建的一个现代物料需求计划(Material Requirements Planning,简称MRP)系统。MRP系统是企业资源规划(ERP)的重要组成部分,它主要用于优化企业的生产计划,确保在正确的...

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

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

    JAVA 算法大全

    图论算法在处理复杂网络结构的问题时尤为有用,Dijkstra算法能找出图中两点间的最短路径,Prim或Kruskal算法则能构建一个最小的连通子图,即最小生成树。 动态规划是一种通过构造子问题来求解复杂问题的方法,它...

Global site tag (gtag.js) - Google Analytics