错排问题之年会抽奖与抄送列表

这篇具有很好参考价值的文章主要介绍了错排问题之年会抽奖与抄送列表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、编程题

1.年会抽奖

2.抄送列表

二、选择题

1.操作系统中关于竞争和死锁的关系下面描述正确的是?

2.并发是并行的不同表述,其原理相同。

3.在Unix系统中,处于()状态的进程最容易被执行。

 4.当系统发生抖动(thrashing)时,可以采取的有效措施是( )。Ⅰ.撤销部分进程 Ⅱ.增加磁盘交换区的容量 Ⅲ.提高用户进程的优先级


 文章来源地址https://www.toymoban.com/news/detail-454525.html

一、编程题

1.年会抽奖

链接:年会抽奖__牛客网 (nowcoder.com)

今年公司年会的奖品特别给力,但获奖的规矩却很奇葩:
1. 首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;
2. 待所有字条加入完毕,每人从箱中取一个字条;
3. 如果抽到的字条上写的就是自己的名字,那么“恭喜你,中奖了!”
现在告诉你参加晚会的人数,请你计算有多少概率会出现无人获奖?

输入描述:

输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。

输出描述:

对应每一组数据,以“xx.xx%”的格式输出发生无人获奖的概率。

示例1

输入

2

输出

50.00%

🔎思路分析:这是一个经典的错排问题

❓❓❓什么是错排呢

用A、B、C......表示写着n位友人名字的信封,a、b、c......表示n份相应的写好的信纸。把错装的总数记作D(n)。假设把a错装进B里,包含这个错误的一切错装法分两类:

1️⃣b装入A里:这个时候每种错装的其余部分都与A、B、a、b无关,应有D(n-2)种错装法

2️⃣b装入A、B之外的一个信封,这时的装信工作实际是把(除a之外的)n-1份信纸b、c.......装入(除B以外的)n-1个信封A、C......,显然这时装错的方法有D(n-1)

总之:

在a装入B的错误之下,共有错装法D(n-2) + D(n-1)种

a装入C,装入D......的n-2种错误之下,同样有D(n-1) + D(n-2)种错装法,因此D(n) = n-1[D(n-1) + D(n-2)]

特殊的D(1) = 0,D(2) = 1

错排问题之年会抽奖与抄送列表  

错排的递推公式是:D(n) = (n - 1) [D(n - 2) + D(n - 1)],也就是第n项为n - 1倍的前两项和。通过这个递推公式可以 得到在总数为n的时候,错排的可能性一共有多少种。那么要求错排的概率,我们还需要另一个数值,就是当总数为n的时候,所有的排列组合一共有多少种,那么根据排列组合,肯定是使用公式来求,也就是n的阶乘。所以结果很简单,就是用公式求出第n项的错排种类,和n的阶乘,然后两者一除,就是概率了。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        long[] arr1 = new long[21]; //错排数组
        arr1[0] = arr1[1] = 0;
        arr1[2] = 1;
        long[] arr2 = new long[21]; //阶乘
        arr2[0] = arr2[1] = 1;//0的阶乘1;1的阶乘2;2的阶乘2
        arr2[2] = 2;
        for (int i = 3; i <= 20; i++) {
            arr1[i] = (i - 1) * (arr1[i - 1] + arr1[i - 2]);//错排的每一项
            arr2[i] = i * arr2[i - 1];//阶乘
        }
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            System.out.printf("%.2f%%\n", 100.0 * arr1[n] / arr2[n]);//100.0是用来转化为double
        }

    }
}

2.抄送列表

链接:抄送列表__牛客网 (nowcoder.com)

NowCoder每天要处理许多邮件,但他并不是在收件人列表中,有时候只是被抄送。他认为这些抄送的邮件重要性比自己在收件人列表里的邮件低,因此他要过滤掉这些次要的邮件,优先处理重要的邮件。
现在给你一串抄送列表,请你判断目标用户是否在抄送列表中。
输入描述:

输入有多组数据,每组数据有两行。

第一行抄送列表,姓名之间用一个逗号隔开。如果姓名中包含空格或逗号,则姓名包含在双引号里。总长度不超过512个字符。

第二行只包含一个姓名,是待查找的用户的名字(姓名要完全匹配)。长度不超过16个字符。

输出描述:

如果第二行的名字出现在收件人列表中,则输出“Ignore”,表示这封邮件不重要;否则,输出“Important!”,表示这封邮件需要被优先处理。

示例1

输入

Joe,Kewell,Leon

Joe

"Letendre, Bruce",Joe,"Quan, William"

William

输出

Ignore

Important!

🔎思路分析:

1️⃣通过Scanner的nextLine()方法获取第一行中的名字

2️⃣解析出第一行中的所有名字保存在HashSet中

3️⃣获取第二行中的名字,检测该名字是否存在,并按照题目的要求进行输出

错排问题之年会抽奖与抄送列表

import java.util.*;
public class Main{
    public static void main(String[] args){
        // 循环处理每组测试用例
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
        // 接收第一行的所有名字,并对名字进行分割,将分割好的名字放在Set
            String name = sc.nextLine();
            int i = 0;
            int end = 0;
            Set<String> s = new HashSet<>();
            while(i < name.length()){
                if('\"' == name.charAt(i)){
                    // 名字包含在""中
                    end = name.indexOf('\"', i + 1);
                    s.add(name.substring(i+1, end)); // 参数1:起始位置 参数2:表示末尾位置
                    //注意:该位置的字符不会被截取到,截取到该位置之前的字符
                            i = end + 2;
                }else{
                    // 名字没有包含在""中
                    end = name.indexOf(',', i+1);
                    if(-1 == end){
                        // 现在要分割的名字是最后一个名字
                        s.add(name.substring(i, name.length()));
                        break;
                    }
                    name.substring(i, end);
                    i = end + 1;
                }
            }
            // 获取第二行的名字并检测该名字是否在Set中存在
            name = sc.nextLine();
            if(s.contains(name)){
                System.out.println("Ignore");
            }else{
                System.out.println("Important!");
            }
        }
    }
}

二、选择题

1.操作系统中关于竞争和死锁的关系下面描述正确的是?

A、竞争一定会导致死锁

B、死锁一定由竞争引起

C、竞争可能引起死锁

D、预防死锁可以防止竞争

死锁的四个必要条件:
1️⃣互斥条件:一个资源每次只能被一个进程使用。
2️⃣请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
3️⃣不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
4️⃣循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

2.并发是并行的不同表述,其原理相同。

A 错

B 对

并发:多个进程在一个CPU下采用时间片轮转的方式,在一段时间之内,让多个进程都得以推进,称之为并发。

并行:多个进程在多个CPU下分别,同时进行运行,这称之为并行。

3.在Unix系统中,处于()状态的进程最容易被执行。

A 辅存睡眠

B 内存睡眠

C 内存就绪

D 辅存就绪

错排问题之年会抽奖与抄送列表

 4.当系统发生抖动(thrashing)时,可以采取的有效措施是( )。Ⅰ.撤销部分进程 Ⅱ.增加磁盘交换区的容量 Ⅲ.提高用户进程的优先级

A 仅Ⅰ

B 仅Ⅱ

C 仅Ⅲ

D 仅Ⅰ, Ⅱ

在具有对换功能的操作系统中,通常把外存分为文件区对换区。前者用于存放文件,后者用于存放从内存换出的进程。
抖动现象是指刚刚被换出的页很快又要被访问。为此,又要换出其他页,而该页又快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上。
I,撤销部分进程可以减少所要用到的页面数,防止抖动。
Ⅱ和Ⅲ,对换区大小和进程优先级都与抖动无关。

 

 

 

到了这里,关于错排问题之年会抽奖与抄送列表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小程序】九宫格抽奖,页面不是有点丑,功能没啥问题,有需要直接拿去改吧

    常用活动抽奖功能,九宫格抽奖,两种方式切换,图片模式和文字模式,带抽奖次数。功能没啥问题,除了有点丑,css样式自己美化一下就可以了... 微信小程序大转盘抽奖 演示图文字: 演示图 图片: 部分代码: 项目结构图:

    2024年02月07日
    浏览(59)
  • c++实现smtp发送邮件,支持ssl的465端口发送,支持附件、一次发送多人、抄送等

    c++实现smtp发送邮件,支持ssl的465端口发送,支持附件、一次发送多人、抄送等。 这里只使用了openssl库(用来支持ssl的465端口),其他部分是原生c++,支持在win/linux运行。 网上很多都是原始的支持25端口,明文发送,这里介绍一下ssl思路 使用sockect编程和ssl,使用SMTP协议。 使

    2024年02月08日
    浏览(100)
  • 【分享】MathWorks中国汽车年会:“软件定义汽车”

    从软件赋能到软件定义,汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题,也面临着新的挑战:软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字技术和工程能力的

    2024年01月19日
    浏览(43)
  • 第八届中国开源年会(COSCon'23)启动!

    *海报设计师:朱亿钦(居居) 一年一度的开源盛会,COSCon\\\'23 第八届中国开源年会,将于10月28~29日,在四川成都市高新区菁蓉汇召开!本次大会的主题是:“开源:川流不息、山海相映”! 大会基本信息: 时间: 2023年10月28日~10月29日 地点: 成都菁蓉汇 报名链接: https:

    2024年02月16日
    浏览(35)
  • 2022智源大会议程公开 | 青源学术年会

    2022年北京智源大会召开在即,5月31日至6月2日,持续三天,26场由各领域领军学者主导的专题论坛。大会将紧紧围绕这些当前学术领域迫切需要解决的问题,以及产业落地过程中存在的诸多挑战,延续一贯以来的“内行认可”品质口碑,分享真正内行认可的重大成果与真知灼

    2024年02月08日
    浏览(39)
  • 基于若依的ruoyi-nbcio的flowable流程管理系统增加服务任务和我的抄送功能

    更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 1、增加一个状态字段 wf_copy增加下面两个字段 就用未读已读来区分 2、前端 api接口增加如下: 上面是我的抄送,主要是接口不一样。 抄送点击详情

    2024年02月04日
    浏览(43)
  • “第十届金融工程及量化投资者年会”来啦!

    第十届金融工程及量化投资者年会带着满满的干货来啦!由天软科技主办,中信证券协办的“第十届金融工程及量化投资年会”将于2023年4月20日在深圳麒麟山庄举办! 自2009年的“第一届金融工程及量化投资年会”成功举办以来,每年天软公司都会在大会上投下金融界的重磅

    2024年02月09日
    浏览(58)
  • html5实现好看的年会邀请函源码模板

    作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/135720875 html5实现好看的年会邀请函源码模板 ,十个界面效果,邀请函、诚挚邀请、关于我们、董事长致词、公司合作方、活动流程、加盟支持、加盟流程、加盟申请、活动信息等。界面展示图文时支持自己设置

    2024年01月21日
    浏览(46)
  • 智能出行 驱动未来|2023 开放原子全球开源峰会 CARSMOS 开源智能出行生态年会即将启幕

    由开放原子开源基金会主办,元遨 / CARSMOS 开源智能出行项目组协办,深信科创、Futurewei Technologies、Open Motors、北极雄芯等单位共同承办的 2023 开放原子全球开源峰会  “CARSMOS 开源智能出行生态年会” 将于 6 月 12 日在北京经开区北人亦创国际会展中心隆重举行。   重量级嘉

    2024年02月07日
    浏览(56)
  • Android Compose Column列表 数据更新列表不刷新的问题

    我们都知道, Compose 可以使用 mutableStateOf 和UI进行绑定,改变值之后,就可以改变UI。 效果如下 但是如果是使用 Column / Row / LazyColumn / LazyRow 列表的时候,无论怎么更新数据,界面都不会刷新 可以看到,点击了按钮后,列表完全没有刷新 这是为什么了 ? 当时很不解,为啥其他

    2023年04月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包