第三次作业(二)

作业题目如下:

阅读下面程序,请回答以下问题:

问题1:这个程序要找的是符合什么条件的数?

问题2:这样的数存在么?符合这一条件的最小的数是什么?

问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间精确到分钟(电脑:单核CPU 4.0G Hz,内存和硬盘等资源充足)。

问题4:在多核电脑上如何提高这一程序的运行效率?

(注:该程序、用C#语言编写,但是只要有C语言基础完全没有阅读压力,如果对部分语句不懂请自行查询)

将上述问题结果写到博客上,截止时间本周日(3月19日)晚8时

using System;

using System.Collections.Generic;

using System.Text;

namespace FindTheNumber

{
  class Program
  {
    static void Main(string[] args)
    {
      int [] rg =
          {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
           20,21,22,23,24,25,26,27,28,29,30,31};
      for (Int64 i = 1; i < Int64.MaxValue; i++)
      {
        int hit = 0;
        int hit1 = -1;
        int hit2 = -1;
        for (int j = 0; (j < rg.Length) && (hit <=2) ; j++)
        {
          if ((i % rg[j]) != 0)
          {
            hit++;
            if (hit == 1)
            {
              hit1 = j;
            }
            else if (hit == 2)
            {
              hit2 = j;
            }
            else
              break;
          }

        }
        if ((hit == 2)&& (hit1+1==hit2))
        {
          Console.WriteLine("found {0}", i);
        }
      }
    }
  }
}

答案如下:

1.是要找出的数,这个程序要找的是一个符合范围是从1~2^63-1的数,其次找出一个数不能被数组rg中两个相邻的数整除且只能连续的两个数不能被整除,余下的数能被整除 ,因为范围很大,很难找住这个数;

2.这个数可能存在,由于运行时间过长,找不出结果;

3.通过运行程序可知,应该所需时间不短,至于计算方法我不知道怎么计算;

4.使用多核电脑时,应尽量少的启动其它应用程序占用CPU,扩大CPU运行空间,从而使CPU可以提供更多的线程来运行这个程序,加快计算速度。

时间: 2024-10-11 15:18:34

第三次作业(二)的相关文章

第三周作业二

快速地达到并且电流不大于三倍,所以尝试用三倍电流进行计算 model motor1 "An DC Motor Model" type Voltage=Real(unit="V"); type Current=Real(unit="A"); type Resistance=Real(unit="Ohm"); type Speed=Real(unit="r/min"); type Torque=Real(uni

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

第三次作业——个人作业——软件产品案例分析

第三次作业--个人作业--软件产品案例分析 评测产品:K米,安卓端 第一部分 调研,评测 评测 初体验 还没去KTV的时候,刚开始下了这个APP,我按正常软件一样,进行了注册功能,可到要写用户信息的时候,(可能是本着比较随意的思想,只想一直点,只填了一些以外使用其他APP时候的基本信息就一直点进一步),在上传用户头像的时候,我想直接跳过,没想到这一定要上传头像才可以啊!!!然后注册完后点进去,看了下K歌功能都不能用,看了一下用户的社区,发现大部分用户动态都是国庆的,这个时候已经10.17了,可见

机器学习 1 linear regression 作业(二)

机器学习 1 linear regression 作业(二) 这个线性回归的作业需要上传到https://inclass.kaggle.com/c/ml2016-pm2-5-prediction 上面,这是一个kaggle比赛的网站.第一次接触听说这个东西,恰好在京东上有一本刚出来的关于这个的书<Python机器学习及实践:从零开始通往Kaggle竞赛之路>.把我自己写的代码运行保存的结果提交上去后发现,损失函数值很大,baseline是6,而我的却是8,于是很不心甘,尝试了其他方法无果后,准

面向对象第三次作业

本次实验要求于2015年10月18日(含)之前完成并以一个文本文档(记录第一题答案)和一个cpp文件(第二题程序)发送到[email protected]邮箱中(不用压缩,共两个附件),邮件主题为"学号姓名第三次作业" 一.运行第二次作业程序10000次,然后回答下列问题: (1)该游戏赢的机会有多少? (2)投骰子游戏平均长度是多少(即平均投多少次骰子)? (3)游戏玩的越久,赢的机会是否越多?为什么? (4)在这10000次中,两个骰子点数的和出现最多和最少的是什么? 二.修改第二

第三课作业——set类型、sorted set类型的增删改查,redis的事务

第三课时作业 静哥 by 2016.2.23~2016.3.6   [作业描述] 1.总结什么是set以及什么是sorted set,并完成对set以及sorted set的增删改查(查需要至少4种方式,比如列表,单个节点等) 2.总结redis的事务特征,并且实际操作事务的提交  丢弃以及乐观锁 [作业一:总结什么是set以及什么是sorted set,并完成对set以及sorted set的增删改查] (1) set是字符串的无序集合,集合内的成员可以是重复: sorted set是有序集合

第三次作业第一题

问卷调查 看到一个问卷不错,拟作为第三次作业的部分内容. 1.   你对自己的未来有什么规划?做了哪些准备 答: 我对未来的规划是想做网页设计类的  目前的准备是多看相关知识的书,熟悉网页设计的软件认真学习,将自己所学运用到实际工作中. 2.   你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习就是把不会的知识变成会的.学习的作用是学会了就能运用到实践中.现在的学习动力还没有那么努力因为可能是还是找不到自己的目标比较迷茫 3.   你感觉自己什么事情做的比较成功?有什么经验?

機器學習基石(Machine Learning Foundations) 机器学习基石 作业二 课后习题解答

大家好,我是Mac Jiang,首先祝贺大家清明节快乐!作为一名苦逼的程序员,博主只能窝在实验室玩玩游戏,顺便趁着大早上没人发一篇微博.不过还是祝各位出行的兄弟玩的开心! 今天和大家分享coursera-NTU-機器學習基石(Machine Learning Foundations)-作业二的习题解答.笔者在做这些题目时遇到很多困难,当我在网上寻找答案时却找不到,而林老师又不提供答案,所以我就想把自己做题时对题目如何思考的写下来,为大家提供一些思路.当然,我对题目的理解不一定是正确的,如果各位博

软件工程(第三次作业)

软件工程(第三次作业) 组员:周德莉.王铭霞 一.题目 在之前编写的四则运算程序基础之上做如下改进: 1  请参照教材Page57:4.2-4.3节中内容,修改原程序,使之符合 “代码风格和设计规范”的基本要求: 2  请采用模块化设计思想,修改之前的code,将 “计算功能” 封装起来 小提示: 假如在C语言环境下,可将函数声明与具体实现分别存放在头文件(.h)和源文件(.c)中: 3  通过测试程序和API 接口,测试其简单的加法功能. 小提示: 单元测试方法请参看教材Page21:2.1.

作业二:操作系统是如何工作的进行

作业二:操作系统是如何工作的进行 mykernel实验指导(操作系统是如何工作的) 运行并分析一个精简的操作系统内核,理解操作系统是如何工作的 打开shell cd LinuxKernel/linux-3.9.4 qemu -kernel arch/x86/boot/bzImage 然后cd mykernel 您可以看到qemu窗口输出的内容的代码mymain.c和myinterrupt.c 一.实验截图 二.分析进程的启动和进程的切换机制 一个小的内核源代码 mypcb.h: 1.#defin