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進行重新配置。由於增加的測量數據,更高層次的軟體工具和更強大的嵌入式自動化控制器,工程師們能裝備精良地設計新一代高性能和高效率的生產設備。"