`
oboaix
  • 浏览: 274281 次
社区版块
存档分类
最新评论

找出随机抽查数字

    博客分类:
  • JAVA
 
阅读更多

  闲来无事,做一个简单随机查找数字小程序,闲的发慌,因为具体user没有给出下一阶段的工作信息。

1 - 10000 随机自然数字(无重复10000个数字), 随机删除其中一个数字, 怎么快速找出你刚才删除的那个数字?

 

package com.suanfa;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author zhaoxiaobo
 * @createdTime:Aug 16, 2012
 * description :
 *  1 - 10000 随机自然数字(无重复10000个数字), 随机删除其中一个数字, 怎么快速找出你刚才删除的那个数字?
 * method1: 找出按照排序的规律,两者之间偏差在大于1以上的就是,即位于他们之间的就是。
 * method2: 既然是数字,我们顺利就要考虑数字的特殊性,比如数字计算内在规则,数字之间的等差关系,存在和差既定性。
 */
public class SearchRandomDigit {

    private static final int TOTAL_NUMBER = 10000; // total number 1 - 10000
    private static final List<Integer> randomList = new ArrayList<Integer>();

    public static void main(String[] args) {
        //generate random 1-10000 digits
        generateRandomDigit();
        //generate one random (1 <= digit <= 10000)
        Integer random = getRandomDigit();
        //System.out.println("count 1=== " + randomList.size());
        Integer result = 0;
        System.out.println("Random digit === " + random);
        if (removeRandomDigit(random)) {
            result = findRandomDigitMethod1();
            result = findRandomDigitMethod2();
        }

        System.out.println("Find result === " + result);
    }

    private static void generateRandomDigit() {
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < TOTAL_NUMBER; i++) {
            list.add(i + 1);
        }
        Collections.shuffle(list);
        for (Integer integer : list) {
            //System.out.println(integer);
            randomList.add(integer);
        }
    }

    private static int findRandomDigitMethod1() {
        int len = randomList.size();
        int result = 0;
        Collections.sort(randomList);
        for (int i = 0; i < len - 1; i++) {
            if (randomList.get(i + 1) - randomList.get(i) == 2) {
                result = (randomList.get(i + 1) + randomList.get(i)) / 2;
                break;
            }
        }
        return result;
    }

    private static int findRandomDigitMethod2() {
        //all data summation
        int sum = 0;
        //all data summation which removed one data
        int sum_ = 0;
        for (int i = 1; i <= TOTAL_NUMBER; i++) {
            sum += i;
        }
        for (Integer atom : randomList) {
            sum_ += atom;
        }
        return sum - sum_;
    }

    private static boolean removeRandomDigit(Integer random) {
        return randomList.remove(random);
    }

    private static Integer getRandomDigit() {
        return (int)(Math.random() * TOTAL_NUMBER) + 1;
    }
}

 

分享到:
评论

相关推荐

    羽翼课堂(学号)抽查器2.1中文绿色免费版

    "羽翼课堂(学号)抽查器2.1中文绿色免费版"是一个专门设计用于教育环境的系统工具,它的主要功能是在1到9999的数字范围内随机抽取学号,便于教师进行课堂互动或者点名。这款软件的中文界面使得用户操作更为便捷,而...

    参考资料-桥梁工程安全和功能检验资料核查及主要功能抽查记录.zip

    对于IT专业人士来说,理解和处理这类数据,可以利用数据分析工具(如Excel的内置功能或Python、R等编程语言)进行统计分析,找出潜在的风险点,为桥梁维护提供科学依据。同时,通过数字化和自动化手段,可以提高检测...

    KET-经销商600 拜访管理流程-Ver30.pdf

    7. **导出查看**:除了个人查看外,管理层也能导出所有业务员的拜访记录,进行深度分析,找出销售过程中的问题和改进点,为制定更有效的销售策略提供数据支持。 此流程通过技术手段实现了拜访管理的标准化和数字化...

    中学六年级数学下册 第八章 数据的收集与整理单元综合测试(无答案) 鲁教版五四制 试题.doc

    9. **条形图分析**:条形图可以清晰地看出各部分的数值大小,例如在职位竞争人数的条形图中,通过比较高度可以找出竞争最激烈的部门。 10. **频数计算**:在给定的数字串中,计算某个数字出现的频数,可以帮助我们...

    aab_查检表和层别法.ppt

    查检表与层别法结合使用,可以更有效地进行数据分析,找出问题的根源,从而制定改进措施。层别法是将数据按照一定的标准(如时间、地点、人员、产品类型等)进行分类,以便于发现规律和问题。通过层别,我们可以更...

    高一数学下学期第一次月考试题(实验班).doc

    在试题中的第1题,对于酸奶的抽查,由于数量较少,通常采用**简单随机抽样**;对于报告厅的听众抽样,由于座位分布均匀,可采用**系统抽样**;对于教职工的抽样,因为不同类别的人数差异较大,更适合采用**分层抽样*...

    IE知识、IE改善、标准工时教材.ppt

    4. 工作抽查法进行工作改善:定期评估工作性能,找出差距,实施持续改进。 【标准化与制度化】 标准化和制度化是企业管理的基础,通过建立明确的操作规范和流程,确保工作的稳定性和一致性,减少错误和延误,提高...

    陕西省榆林市第学2018 2019学年高二数学下学期第一次月考试题 理.doc

    10. **数字和问题**:“吉祥数”的定义是三位数的各位数字之和等于6,可以通过枚举或数学分析找到所有符合条件的数。 11. **相邻捆绑问题**:4个小组的3人坐在一起,可以看作是4个大元素的排列问题,每个小组内部...

    河南省濮阳市第六中学六年级数学下册 第八章 数据的收集与整理单元综合测试(无答案) 鲁教版五四制

    6. **统计图形解读**:通过条形图可以比较各部门的竞争人数,找出人数最多的部门;在数字序列中计数特定数值(如“1”的频数)来了解其出现的频繁程度。 7. **抽样方法**:当要求每个个体都有相等机会被抽到时,这...

    七年级数学期末检测试题【新课标人教版】精选.doc

    2. 位值表示法与整数表达:中间一行的数字可以表示为100d+10b+e,中间一列的数字可以表示为100a+10b+c,通过位值原理,我们可以推断m和n的关系,进而求出m+n的值。 3. 不等式的基本性质:题目中给出的不等式需要...

    文献信息检索习题答案文献信息检索答案.pdf

    2. 检索方式:常见的检索方式有顺查法(按时间顺序查找)、倒查法(从最新文献开始查找)、引文追溯法(通过参考文献查找相关文献)和抽查法(随机选择时间点进行查找)。 3. 数据库与检索工具:例如《中国图书馆...

    信息检索技术讲授版.pptx

    3. 常规法:这是最基本的检索方式,包括顺查法(按照时间顺序查找)、逆查法(从最近的信息开始追溯)和抽查法(随机选择时间点进行检索)。常规法依赖于各种形式的检索工具,如印刷版、缩微版、光盘版和网络版。 4...

    陕西省榆林市第二中学2019_2020学年高二数学上学期第二次月考试题201912190277

    首先计算所有可能的点数组合,然后找出满足条件的组合。对于任意两个骰子,总共有\(6 \times 6 = 36\)种组合。点数差为0的组合有(1,1),(2,2),...,(6,6),共6种。点数差为1或-1的组合有10种。所以,满足条件...

    文献检索考试题目及答案.pdf

    抽查法是在大量文献中随机选取;综合法结合多种方法。 9. 中国图书馆图书分类法:采用拼音字母和数字相结合的体系,用于对图书进行分类。 10. 检索工具:题录、索引、文摘和目录分别用于报道文献信息、提供索引、...

    4用频率估计概率——小学生ppt学习课件

    **数据分析**: 分析实验得到的数据,找出事件发生的规律。例如,在种子发芽实验中,通过记录每批种子的发芽数量和总数量,可以计算出发芽的频率,并据此估计这批种子的发芽率。 ### 4. 应用案例 **案例一**:假设...

    上海市上海中学2020-2021学年高二下学期3月月考数学试题 Word版含答案.docx

    - **题目描述**:某班共有40名学生,其中只有一对双胞胎,若从中随机抽查三位学生的作业,则这对双胞胎的作业同时被抽中的概率是多少? - **解析**:从40名学生中选取3名的方法数为 \(\binom{40}{3}\)。其中包含双...

    山西省长治市屯留县高一数学上学期期末考试试题.doc

    题目中提到市政府在抽查意见时,为了更具代表性,应该选择分层抽样,因为这样能确保各个领域(农业、工业、教育)的代表都被充分考虑。 5. **函数的零点问题**:函数零点是使函数值为0的自变量的值。题目中涉及的是...

Global site tag (gtag.js) - Google Analytics