奇安信笔试编程题完整解析附代码

2023-11-10

昨天晚上奇安信笔试,两道编程题做的都不好,有紧张的元素,也有自己实力不够硬的问题,总之把两道编程题又做了一遍,思路屡清楚,下次继续努力!

其实两道题非常非常简单,如果放在高中数学,基本就是送分题了,但是最近疫情期间,在家都躺退化了。。。算了,开搞!

1. 第一题,抽硬币题

**题干:**有1000枚硬币,其中有10枚是金币,从中取出n枚硬币,求这n枚硬币中有金币的概率。答案保留6位小数。如抽取一枚,金的概率0.010000

**解题思路:**一道简单的高中数学送分题,如果正着去思考,那这n枚硬币中有可能是1枚金的,也可能是2枚金的,甚至更多,那就没法算了。

我们可以逆向思维,可能性只有两种,要么有金的,要么没金的,那我们可以计算没有金的的概率,用(1-没有金的),不就是有金的概率了吗?

好的我们来列一下数学公式:

没有金的概率 = (从990枚中抽取n枚的所有可能)/(从1000枚中抽取n枚的所有可能)

数学公式:

在这里插入图片描述

是不是一股熟悉的气息冒上心头,诶!对了,就是概率题嘛~

当然,有两个极端情况需要处理,那就是当抽取硬币大于990的时候,那就是百分百的概率了。当抽取小于0的时候,参数是错误的。这个相信每个boy和girl都好理解!

接下来还有一个问题要解决,那就是理论是理论,实际是实际,如果正好抽990个,那难道我们要把990的阶乘算一遍吗?显然是不行的,一来double类型根本是放不下的,而来题目也有时间和内存的要求,有同学想到字符串化之后处理,那么看看分子和分母,相除以。。。算了,我们来看看怎么办吧!

细心的胖友已经发现了,分子与分母有一段是重叠的,我们可以互相抵消,那么有多少是重叠的呢?

其实很简单,分母从1000到990是自己独占的,分母的最后一位(1000-n+1)和分子抵消后,分子还没有结束,直到(990-n+1)

接下来就简单了,我们只需要计算分母为1000到990的累乘,分子为(1000-n)到(990-n+1)的累乘即可。

接下来就是代码啦!代码里我也会标着我提到的点的注释,欢迎大家探讨纠错!

public class GoldSelect {
   
    public static void main(String[] args) {
   

        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
   
            
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

奇安信笔试编程题完整解析附代码 的相关文章

随机推荐

  • 【Android】App开发-布局篇

    UI的开发离不开各个组件的精准布局 在我们学习了控件之后 控件篇 我们就需要对这些控件进一一排布 让它们在各个指定的位置 目录 LinearLayout线性布局 RelativeLayout布局 FrameLayout布局 TableLay
  • 【Python爬虫】将爬下来的数据保存到redis数据库里面

    redis库中的Redis类对Hash数据类型操作的常用方法 方法名 具体说明 hset name key value 哈希中添加一个键值对 hmset name mapping 设置哈希中的多个键值对 hmget name keys ar
  • 逻辑架构和物理架构

    逻辑架构和物理架构 理论上划分了5种架构视图 分别是 逻辑架构 开发架构 运行架构 物理架构 数据架构 逻辑架构 逻辑架构关注的是功能 包含用户直接可见的功能 还有系统中隐含的功能 或者更加通俗来描述 逻辑架构更偏向我们日常所理解的 分层
  • HTML学习(二)HTML基础

    以这个为例 h1 我的第一个标题 h1 p 我的第一个段落 p DOCTYPE 前用来申明这是一个html 这里的html不区分大小写 HTML标题 HTML 标题 Heading 是通过 h1 h6 标签来定义的 h1 1级标题 h1 H
  • R语言优雅地修改列名称

    R语言优雅地修改列名称 在R语言中 修改数据框 DataFrame 或矩阵 Matrix 的列名称是一项常见的任务 通过优雅地修改列名称 可以提高代码的可读性和可维护性 在本文中 我将介绍几种优雅的方法来修改列名称 并提供相应的源代码示例
  • GPU计算

    文章目录 GPU计算 1 GPU和CPU的区别 2 GPU的主要参数解读 3 如何在pytorch中使用GPU 4 市面上主流GPU的选择 GPU计算 1 GPU和CPU的区别 设计目标不同 CPU基于低延时 GPU基于高吞吐 CPU 处理
  • 95-34-025-Context-AbstractChannelHandlerContext

    文章目录 1 概述 2 继承体系 3 类签名 4 关键字段 5 构造方法 6 ChannelRead事件 6 1 findContextInbound 7 invokeHandler 1 概述 2 继承体系
  • tensorrt转换模型进行了哪些操作

    对于网络layer graph进行的操作 消除输出未使用的层 消除相当于无操作的操作 卷积 偏置和ReLU运算的融合 具有足够相似参数和相同源张量的运算聚合 例如 GoogleNet v5的初始模块中的1x1卷积 inception结构中同
  • DW9718AF.c

    Copyright C 2015 MediaTek Inc This program is free software you can redistribute it and or modify it under the terms of
  • ERP系统总体解决方案 附下载地址

    企业资源计划即 ERP Enterprise Resource Planning 由美国 Gartner Group 公司于1990年提出 企业资源计划是 MRP II 企业制造资源计划 下一代的制造业系统和资源计划软件 除了MRP II
  • 大数据学习框架及指南

    Hadoop生态圈 一 采集 数据从哪里来 主要包括flume等 一 存储 海量的数据怎样有效的存储 主要包括hdfs Kafka 二 计算 海量的数据怎样快速计算 主要包括MapReduce Spark storm等 三 查询 海量数据怎
  • 数据结构与算法笔记2(线性表)

    1 线性表 1 1线性表是一种逻辑关系 见绪论 1 2定义 是具有相同类型的n个元素的有限序列 其中n为表长 n 0时为空表 关键词 相同类型 一般处理的数据元素都是相同类型 比如一个人那么都是人 而不会把人与车放在一起 关键词 有限序列
  • Java泛型知识点整理

    Java泛型知识点整理 Java泛型 泛型提供了编译时类型安全检测机制 该机制允许程序员在编译时检测到非法的类型 泛型的本质是参数化类型 也就是说所操作的数据类型被指定为一个参数 比如我们要写一个排序方法 能够对整型数组 字符串数组甚至其他
  • ConcurrentHashMap为什么是线程安全的?

    1 ConcurrentHashMap的原理和结构 我们都知道Hash表的结构是数组加链表 就是一个数组中 每一个元素都是一个链表 有时候也把会形象的把数组中的每个元素称为一个 桶 在插入元素的时候 首先通过对传入的键 key 进行一个哈希
  • MapReduce的Job提交流程

    编写一个简单的WordCount程序 Mapper import org apache hadoop io LongWritable import org apache hadoop io Text import org apache ha
  • Tip of the Week #49: Argument-Dependent Lookup

    Tip of the Week 49 Argument Dependent Lookup Originally posted as totw 49 on 2013 07 14 whatever disappearing trail of i
  • 深度学习技术在自动驾驶中的应用与挑战

    导读 深度学习技术经过近几年井喷式的发展 在很多领域都得到了广泛的应用 在自动驾驶系统中 深度学习技术也起到了至关重要的作用 同时也面临着非常多的挑战 我们一直在探索 在一个安全 稳定的自动驾驶产品中 深度学习技术应该有着怎样的作用边界 又
  • Unable to load configuration的解决方法

    最近在学Struts2 5 5 因为喜欢用最新的 并且之前没有学习过的经验 就按照一个网上的博客跟着做一个小实例 里面说直接用 Struts2 5 5中自带例子的struts xml文件 结果我就用了 然后写了一个小程序就一直报 Unabl
  • Java中的对象是什么?

    Java是一种面向对象的编程语言 它将世界视为具有属性和行为的对象的集合 Java的面向对象版本非常简单 它是该语言几乎所有内容的基础 因为它对Java非常重要 所以我将对幕后内容进行一些解释 以帮助任何不熟悉Java的人 遗产 通常 所有
  • 奇安信笔试编程题完整解析附代码

    昨天晚上奇安信笔试 两道编程题做的都不好 有紧张的元素 也有自己实力不够硬的问题 总之把两道编程题又做了一遍 思路屡清楚 下次继续努力 其实两道题非常非常简单 如果放在高中数学 基本就是送分题了 但是最近疫情期间 在家都躺退化了 算了 开搞