mody编程
① 请教一道数学题
你提出的问题是计算机算法领域很着名的一个问题——约瑟夫问题,它的一般形式是:
N个人1-N编号,从1循环报数报到M的人退出,最后退出的那个人编号是多少?
设最后一个退出的人编号J(N,M),据我所知还没人能把J(N,M)写成N,M的解析函数式。但是有一些可供手工和编程计算J(N,M)的算法,下面详细说一下(以题目N=1000,M=10为例):
1.模拟,即把每一趟退出的人都列出来看最后剩下的人编号。这个算法要计算NM次,N=1000,M=10,就是10000次,适合计算机求解,手工不适合
2.有如下的递推式成立:
J(1,M)=1
J(N,M)=(J(N-1,M)-1+M)MODN+1
XMODY表示X对Y取余数
N=1000时要计算1000次
这种算法同样只适合计算机求解
3.我自己的一个算法:
设[X]是X整数部分
(1)每遍历一次队列,人数大约变为原来的9/10
(2)设N个人
A1,A2,A3....,AN-1,AN
从A1开始报数,遍历一遍后,还剩下
A1,A2,A3...A9,A11,...A19,A21,...A29,A31....A(N-NMOD10-1),A(N-NMOD10+1)...AN
记这时的队列为S
不难得到如下结论:
①在这一次遍历中最后一个退出的人是A(N-NMOD10)
②若10|N,最后一个剩下的是S里第{J(9N/10,10)}个人
③若NMOD10≠0,且S从1报数最后退出的人编号J(N-[N/10],10)>NMOD10,原队列最后一个剩下的是S里第{J(N-[N/10],10)-NMOD10}个人
④若NMOD10≠0,且S从1报数最后退出的人编号J(N-[N/10],10)≤NMOD10,原队列最后一个剩下的是S里第{N-[N/10]+(J(N-[N/10],10)-NMOD10)}个人
⑤S中的第T个人对应原队列A1A2...AN的第{[(T-1)/9]*10+(T-1)MOD9+1}个人
⑥N=1,2,...9时,J(N,10)=1,1,2,4,4,2,5,7,8
综合①-⑥,得到J(N,10)另外一个递推式:
J(N,10)=
1,1,2,4,4,2,5,7,8 当N≤9
T=J(N-[N/10],10)-NMOD10,J(N,10)=[(T-1)/9]*10+(T-1)MOD9+1 当J(N-[N/10],10)>NMOD10
T=N-[N/10]+J(N-[N/10],10)-NMOD10,J(N,10)=[(T-1)/9]*10+(T-1)MOD9+1 当J(N-[N/10],10)≤NMOD10
因从N到N-[N/10]递推变量变为原来的9/10,故这个算法需要计算log[10/9]1000=66次,虽然有点多,但已经可以打草稿算出来,方法是先计算J(9,10)再根据递推式反推回来。我把每次计算后的N和J(N,10)的结果写在下面:
N J(N,10)
9 8
10 8
11 7
12 5
13 2
14 12
15 7
16 1
17 11
18 3
19 13
21 13
23 11
25 6
27 26
30 28
33 27
36 23
39 15
43 13
47 6
52 4
57 54
63 56
69 52
76 51
84 52
93 54
103 56
114 57
126 56
139 52
154 53
171 57
189 53
209 48
232 51
257 48
285 47
316 45
351 48
389 43
432 45
480 49
533 51
592 54
657 52
729 47
810 52
900 57
1000 63
由此看出,最后一人编号是63
你可以写个程序验证这个结果是正确的
这个算法另一优点是计算次数与N成对数关系,计算复杂度比N次,NM次的要好很多
当N=1000000时,这个算法也只需要计算约log[10/9]100000=132次。
希望回答对你有所帮助!
② 输出从1到100能被7整除的整数,如何编程啊,用vb
)
For
i
=
1
To
val(k)
If
i
Mod
7
=
0
Then
Print
i
End
If
Next
End
Sub
这段程序就不只是检测一百以内的了用mod函数
这个函数的意思就是。
所以代码可以写成(扩展代码)
Private
Sub
Command1_Click()
Dim
i
As
Integer,比如
x
mod
y
那么意思就是x除以y得到的余数
如果是0,k
k=inputbox("请输入要检验的最大的数",那么就是代表整除了
③ VB编程计算器
利用Label控件,在窗体上建立Label1,label2,label3,label4四个标签对象其中label1和label2的caption改为第一个数和第二个数,label4为其结果.在窗体上建立text1和
text2文体框对象输入数据。
利用frame
控件在窗体上建立frame1框对象;利用optionbutton控件,在窗体上建立置于frame1
中的option1选项钮,单击“复制”按钮,将option1复制6个,建立控件数组就可以了,分别将其caption改为“加”“减”“乘”“除”“整除”“求余”“指数”加以下代码就可以了.
Private
Sub
Option1_Click(Index
As
Integer)
Dim
x
As
Single,
y
As
Single
x
=
Val(Text1.Text)
y
=
Val(Text2.Text)
Select
Case
Index
Case
0
Label4.Caption
=
x
+
y
Case
1
Label4.Caption
=
x
-
y
Case
2
Label4.Caption
=
x
*
y
Case
3
Label4.Caption
=
x
/
y
Case
4
Label4.Caption
=
x
\
y
Case
5
Label4.Caption
=
x
Mod
y
Case
6
Label4.Caption
=
x
^
y
End
Select
End
Sub
调试一下就可以了。
④ 当今全球自动化创新技术列举
这个题太大了,下面有个网址,供您参考
http://www.beckhoff.com.cn/cn/Document/interview/interview_beckhoff_200703.pdf
前言:也许有很多业内权威会对自动化工业创新的现状感到担忧。和以往一样,行业领袖需要保持清醒的头脑以推动先进自动化技术向前发展,现实的发展步伐应支持和维持利润和生产力的优势。这篇文章将显示,工业自动化行业内的创新和技术进步正有序进行。
PC驱动
James Truchard是得克萨斯州Austin市自动化供应商美国国家仪器公司的总裁和首席执行官,他的评论直中要点。"过去10年来,自动化的最重大创新来自个人计算机(PC)技术与工业设备的结合。现在的工业控制产品中经常可以看到工业版的浮点处理器,DRAM(动态随机存取记忆体),固态存储设备如CompactFlash (CF)卡,快速以太网芯片和现场可编程门阵列(FPGA)," Truchard说。"这使得供应商和终端用户能够开发更加强大的软件,这些具有PC控制系统的灵活性和可用性的软件能可靠地在实时操作系统上运行。ARC咨询集团的分析师命名这些设备为可编程自动化控制器-- PAC。与PLC(可编程逻辑控制器)相比,PACs提供相同的耐用性和可靠性但往往更快,更灵活。"
开放系统这个主旋律得到Peter ZorNIo的共鸣,他是另一家位于得克萨斯州Austin市的自动化供应商Emerson Process Management的首席战略官,他反思了在过程控制业多年的经历。"从大约1993年到2002年左右,每个供应商都花费了大量的金钱开发开放系统,"Zornio指出。"我们从为特定目的建造具有专用网络和硬件的自动化系统发展到今天的开放自动化系统。不算实际控制器和设备,今天的自动化系统已经与信息技术(IT)领域使用相同的基础技术。
"客户想从PC市场得到容易的整和以及低成本硬件,"Zornio补充说,"但是他们并没有获益于更多的技术和安全支持。现在他们正卷土重来,这将加速下一个领域的创新。"
Zornio的公司已在无线通讯技术上投入巨资,他还指出,"当然,我会说无线通讯技术是一重大进步。"据他分析,无线通讯技术可能尚未象过去的一些技术进步那样对现今的自动化系统产生变革性的影响。但是Zornio预计,无线通讯技术的持续创新将对未来的自动化系统产生重大影响。
Milwaukee市的Rockwel自动化公司高级副总裁兼首席技术官Sujeet Chand将信息和通信联系起来。"信息和通信技术的发展对设计、操作和工业自动化系统维护的生命周期具有变革性的影响,"他说。
网络的影响
"在设计阶段,机电一体化与模拟技术的发展使我们能够在建造之前模拟并验证机器和制造系统的性能。由于双向的信息流,从'CAD到部件'的生命周期现在可以是连续的。这使得制造企业能够在产品推向市场的时间、质量和产量方面推动持续的改进。"Chand指出,"在生命周期的运作和维护阶段,标准以太网在工业自动化中的快速采用以及网络互操作标准的应用正在使IT系统及业务与工厂的整合成为可能,并帮助生产企业推广全厂范围和供应链的优化。"
许多人总体上把网络作为一项重大的创新技术。佐治亚州Alpharetta市的西门子工业公司工业自动化事业部总裁Raj Batra说,"基于公用总线结构的安全控制一直是现今具有重大影响力的创新技术之一。可编程安全控制成为了一个范式转变。生产力成本的节省以及网络技术的发展,让这个市场非常迅速。"
Dave Skelton 是位于宾夕法尼亚州Middletown 的供应商Phoenix Contact USA的自动化主管,他说,"我很象托马斯·爱迪生那样看待创新理念,'卖不掉的东西,我不想去发明',"至于旧发明促进今天的自动化进步,他也提到了网络。"商业通信技术的产业化,特别是以太网基础设施和无线通信技术,算得上是过去数年里影响现今自动化的最重要创新。我之所以这样说是因为销售的成功。这使得IT界有机会与制造业以直截了当的方式接触。"
"当然,作为可行工业通信标准的以太网和互联网协议(IP)的出现和广泛应用是过去10年来自动化最重要的创新,"Ben Orchard说。Orchard是位于加利福尼亚州Temecula的自动化供应商Opto 22的应用工程师,他对商业网络技术的重要性具有一致的观察。"没有以太网和IP将会大大减少自动化设备和系统之间的互操作性。在决定什么物理接口或应用协议最适合某一特定应用程序时,这为用户提供了多种选择。"
位于加利福尼亚州Long Beach的软件供应商Apriso公司的首席技术官Chris Will关注软件上的发展。"当然,首先将XML(可扩展标记语言)及其继任者——Web服务,面向服务架构(SOAs)和业务流程管理套件引入自动化领域的组织应得创新的称号。如今所有主导的软件基础设施供应商都在推动这三项技术。"
整合能力
伊利诺伊州Vernon Hills的供应商三菱电气自动化有限公司的项目经理Sloan Zupan持不同的思路。"最重要的创新与把不同的控制规则巧妙地集成到一个控制平台上有关。这包括像PLC,机器人,计算机数值控制器(CNCs),人机界面(HMIs)和视觉系统这样的东西。结合这些技术可以让用户为每一个应用恰到好处地选择搭配控制规则。"
位于瑞士苏黎世的自动化供应商ABB有限公司的首席技术官Peter Terwiesch补充说:"在集成能力上的进步,远程访问,设备和资产自身的智能化,加上以往相互竞争的通信协议的统一,促使用户有能力来优化他们的资产。过去十年来虽然设备已经变得更加聪明,在此期间微处理器已经深入渗透到现场设备的领域,并提供了丰富的诊断和操作信息,然而这个信息的真正价值只有当客户能够访问使用它时才能实现,"Terwiesch说。
"此外,从难以到达或危险位置上的设备获得信息然后加以使用,这些远程访问技术的进步帮助客户获得所有需要的数据用以准确评估生产情况或防止潜在的问题,"他补充说。"无线通信的实现使得从智能设备获取诊断信息成为可能,而此前的通讯连接方式决定它们只能传递过程数据。"
通过对一个加工厂的观察,过程系统供应商Honeywell Process Solutions的技术副总裁Jason Urso列出了几项对自动化和工厂经营具有影响力的技术创新。"操作者效率工具和异常状态管理的最佳实践(得益于现代图像和可视化技术以及报警管理工具的创新),加上减少报警泛滥的管理工具,是过去最重要的创新。开放系统的出现让使用传统系统的工厂能够在迁移HMI(人机界面)时保留其控制和输入/输出(I/O)的基础设施。工业无线通讯正使得效率和成本显着改善。最后,从使用HART或基金会现场总线(Foundation Fieldbus)的现场仪器得到的诊断信息控制工程网版权所有,正在让工厂更加积极主动地进行仪器维护。"
离散设备制造商Bosch Rexroth Corp的技术副总裁斯Scott Hibbar指出了三个驱动当前自动化技术的创新。"首先是产业界的接受度以及工厂自动化中精密运动控制的整合。十年前还是一个主要用于精密金属切削设备领域的偏门技术现已被几乎每一个自动化领域主流所接受",这位供应商执行官说。"接下来是运动和逻辑的整合。最后,基于以太网的现场总线正在达到自动化应用的需求,同时也在制造业环境中与其他信息技术共同发挥作用。"
Rockwell的Chand说:"未来,通过先进的传感技术和无线通信技术的扩散,持续地利用以太网,更大范围地利用先进控制技术,以及可持续和安全的生产方法,我们将继续看到今天的制造工厂转变为优化的工厂和供应网络。"
来自Emerson Process的Zornio已经确认无线通讯既是一个驱动现今自动化的昔日发明,而且也是未来自动化创新的驱动技术。"另一件大事---一个巨大的转变---就是减少复杂性,"他补充道。他称之为以人为中心的设计。"过去在80和90年代,如果一项新技术出现且你认为将会带来一些益处,客户会说不错,但'我得雇我需要的人。'让我们面对现实吧。PC不是给胆小鬼准备的。技术太难用再也不是一个借口了。看看iPhone吧。自动化领域也是如此。"
西门子的Batra认为未来创新的关键是产品生命周期管理(PLM),从设计到制造策略的紧密结合。"现实工厂车间与虚拟世界的结合,这将导致公司经营方式的巨大模式转变---数字化的工厂。"
Russ Agrusa是一家位于马萨诸塞州Foxborough的制造软件供应商Iconics公司的总裁和首席执行官,他表示软件巨头微软公司的最新操作系统,Windows 7,是一个"游戏规则颠覆者。"他继续说,"新Windows 7的多触控技术、易于使用的功能使得与制造商运营的交流更自然。"
Rashesh Mody是位于得克萨斯州Plano的自动化供应商Invensys Operations Management (IOM)的投资组合和策略副总裁,他认为,"云计算可能是一个惊人的变化。其次是虚拟化和模拟线程。这项技术主要针对的是降低拥有IT资源的成本。业务流程也将受到创新的关注,如何与我们的客户和集成商互动,如何管理工作流程。所有这些都是如何管理信息这个共同点的延伸。"
这个在"云计算"技术领域正赢得广泛关注的新趋势也称为"软件即服务(SaaS)"。这项技术需要将应用程序和数据保存在远程主服务器("云")里,客户可以从任何地方在任何与互联网连接的且具有充分显示功能的设备上访问,以查看结果。
来自软件供应商myDials公司的首席执行官Wayne Morris预见,信息业和公司的视角通过SaaS 组件和为一体。他预测,"在整个价值链上,新兴技术将推动过程自动化控制及企业制造智能技术与广泛、整体、持续的过程技术进步相结合。"这些措施包括在整个价值链上结合、关联性能指标,由连续指标处理而不是基于批处理的OLAP(在线分析处理)cube信息处理所促成的近乎实时的指标更新,由Web 2.0技术驱动的直观、交互式的指标可视化和分析,以及启动了SaaS且跨越多个企业的整个供应链,需求链和分销渠道的管理。"
另一个设在加利福尼亚州Pleasanton的软件供应商Transpara公司首席执行主任Michael Saucier期望以开放的数据库与无线网络及设备联接性相结合的信息革命为杠杆来创新未来信息传递到人们的方式。
"展望未来,"Saucier说,"我想说爆炸性地采用智能设备将会是驱动自动化和生产运营的最重大因素。我认为我们刚刚开始利用开发移动商业智能应用的潜力。人们逐渐认识到,手机除了用于电子邮件和更新棒球比分以外还能另有用途。只要在计划部署时考虑到规格因素,你可以把任何类型的业务、运营或制造数据存储在手机上。移动商务智能是个人数字助理在制造领域的强大应用。"
显示技术
机动且联通的工人的到来不能仅是瞬时幻想。位于加州Mountain View的自动化供应商Apprion的首席执行官兼工程副总裁Doug Donzelli指出,无线通信技术是转变成为"实时、机动、高生产率工人"的基础。企业可以使用无线通信将数据传入工人手中。"第二个驱动技术将会是OLED(有机发光二极管)屏幕。想象一下,工人能在工作现场展开一幅4 × 8英尺的视频屏幕---而不是一个仅有2 × 3英寸的屏幕。此外OLED固有的安全标定是Class 1 Div 2。因此,结合实时信息,无线通信,更大的数据通道,更好的显示效果,机动的工人将随身带着控制室出来吗?"
National Instruments的Truchard在他大多数研究中关注自动化的芯片和编程层面。他指出,"虽然PACs代表最新的可编程控制器,PAC的未来取决于嵌入技术的纳入。一个例子是能使用软件来定义硬件。"
考虑现场可编程门阵列。"FPGA是电子元件制造商用以创建自定义芯片而普遍使用的电子设备,它能将智能置于新的器件中。这些设备包括三大主要部件:可以执行各种功能的可配置逻辑模块,作为开关连接功能模块的可编程互连接口,以及将芯片数据传递进、出的I / O模块。通过定义可配置逻辑模块的功能和它们彼此及与I / O连接的方式,电子设计人员可以创建自定义集成芯片而无需交付生产定制ASIC(应用专用集成电路芯片)的费用。FPGA就相当于一个能重新连接其内部电路以运行你的具体应用程序的计算机,"Truchard解释说。
ABB公司的Terwiesch预测三个领域的创新。他说:"在查看进程和可获得的实时信息量方面,可视化技术一定会有重大的进展。能够实时地聚焦在某一特定数据集、或过程状态的能力将会提高操作者和工厂管理人员的生产力。对采取一个特定行动将可能导致的情况进行真实的实时模拟,或不将操作者置于危险环境或岗位,这种能力将在过程效率及安全方面产生巨大的成果。我们还将会看到更广泛地使用自动化网络虚拟化技术,这使得所需的物理硬件设备只相当于运行一个进程的一小部分(例如,一个需要14个服务器的进程可能只需2个了。)——持续统一的标准。"
Honeywell的Urso的补充说,"首要的是,无线通讯将继续对自动化行业产生巨大的影响。其次,我们将会看到工厂里增加的传感技术。我们将会看到创新性的新型传感技术的涌现,这包括纳米传感器以及具有相关分析算法的视频技术。第三,远程服务和支持将在提高工厂效率方面发挥更大的作用。最后,通过操作控制台上操作员与业务应用的集成,我们希望看到更多的工厂将过程数据转换成可操作的知识。操作者将更多地成为业务优化者而不是过程操作者。"
明尼苏达州Burnsville的供应商Beckhoff自动化有限责任公司总裁Graham Harris说:"我看到的不仅是新以太网和基于PC的技术引领制造业和自动化的创新,而且还有融合了更先进工程解决方案的高能力、集中化设备。可以认为这将为自动化控制器带来更强的多任务处理功能。这通常是由一个配备了现代多核处理器的单一工业PC来完成,这不只是在一块控制器上涵盖PLC(可编程逻辑控制器),自动化,运动控制和HMI(人机界面的控制器),而且还跨越到包括各种形式的高精密测量,状态监控甚至是机器人学/运动学。"
降低能耗
芝加哥独立包装自动化顾问John Kowal认为,包含板载多媒体的新技术部分地简化了培训和实际经历。他预计会看到类似于"能源之星"的基于机器整体设备效率(OEE)的评定标准。而且,从文化而不是技术的角度来看,他预见跨国合作的发展。
三菱的Zupan认为嵌入式IT技术,例如进入自动化平台的面向服务框架,将会产生最大的影响。"客户期望自动化设备与IT更高水平的整合,以便更好地经营资产管理,库存管理,生产进度,关键性能指标报告和远程管理。"
Bosch Rexroth的Hibbar认为,开放的通讯标准以及采用网络的自动化市场将刺激未来的创新。他补充说,"能源消耗,不论是从环境影响或是从传统能源资源耗尽来看,社会将受到能源消耗的影响。由于制造业消费所生产能源的三分之一,自动化技术如何更好地管理生产环境中的能源消耗将会引来很多的关注。"
对将用这些新技术来发明创造的未来工程师,Truchard加入了一些忠告。"随着对绿色工程的关注以及嵌入式技术在自动化系统多方面整合的趋势,对于一个工程师来说,只专注一项工程形式也许很快就不够用了。在未来的5到10年里,标准开发平台和高水平抽象工具将革命化工程师设计嵌入式自动化系统的方式。通过数字原型工具,工程师们已将测量和控制算法纳入他们的机械模型。他们还通过高层次图形化编程语言对嵌入式系统进行编程以及对FPGA进行重新配置。由于增加的测量数据,更高层次的软件工具和更强大的嵌入式自动化控制器,工程师们能装备精良地设计新一代高性能和高效率的生产设备。"