
如圖示范
不想用回圈對比累加思路
有無別的簡單的命令,或者折中思路?
uj5u.com熱心網友回復:
這種怎么可能不用“回圈”!!!難道用“回圈”就是復雜的代碼了???

好吧,你自己“用眼睛看、自己去數”,這樣“代碼都不用寫”,哪用什么回圈…………
uj5u.com熱心網友回復:
回圈就是最簡單的代碼!如果不用代碼來解決問題,倒真是“很有挑戰性”的問題。出門右轉是小學……
uj5u.com熱心網友回復:
查表法uj5u.com熱心網友回復:
回圈是很耗時的一個東西吧。。。例如一個一維陣列 a(1000000),里面存的數字符,現在要將所有字符取取出來組成一起
如果你用回圈
FOR I=0 TO 999999
取字符
NEXT I
如果不用回圈,就是一句話
字符=join(a())
所以我想在2維陣列上也大概類似的思路。。。不用回圈。
uj5u.com熱心網友回復:
大神你好,因為100萬行回圈并且計算出來,估計要耗時幾毫秒,但是這樣我程式要重復處理這樣的步驟達到10萬次,。。那么累加時間就是幾個小時了,,,想找個更簡單的辦法
uj5u.com熱心網友回復:
百萬回圈改為一句陳述句(呼叫一個函式)不等于執行的時間就從百萬降到了一。圖樣圖森破,少年!
uj5u.com熱心網友回復:
我覺得有的內置函式是人家微軟發明出來的,做的肯定比我們自己寫的,要先進好多吧。,,
uj5u.com熱心網友回復:
外國的月亮就是要比中國的圓,對吧!!!
你用的計算機,估計作業系統也是Windows吧,
難道Windows系統的漏洞、Bug還少嗎!
uj5u.com熱心網友回復:
這個結論,對你來說可能是有很接近“100%”的置信度,
但對“別人”來說,這是很可能“不靠譜的結論”了。
uj5u.com熱心網友回復:
這種怎么可能不用“回圈”!!!
難道用“回圈”就是復雜的代碼了???
好吧,你自己“用眼睛看、自己去數”,這樣“代碼都不用寫”,哪用什么回圈…………
大神你好,因為100萬行回圈并且計算出來,估計要耗時幾毫秒,但是這樣我程式要重復處理這樣的步驟達到10萬次,。。那么累加時間就是幾個小時了,,,想找個更簡單的辦法
建議你把需要解決的問題按“實際情況”描述一下,你這“換一種方式來表達”,未必貼合客觀事實。
并且,很可能你的“解決方案”就已經走上了一條“錯誤的路”、你還強行把別人帶進“陷阱中”之后再去解決問題!
uj5u.com熱心網友回復:
這種怎么可能不用“回圈”!!!
難道用“回圈”就是復雜的代碼了???
好吧,你自己“用眼睛看、自己去數”,這樣“代碼都不用寫”,哪用什么回圈…………
大神你好,因為100萬行回圈并且計算出來,估計要耗時幾毫秒,但是這樣我程式要重復處理這樣的步驟達到10萬次,。。那么累加時間就是幾個小時了,,,想找個更簡單的辦法
建議你把需要解決的問題按“實際情況”描述一下,你這“換一種方式來表達”,未必貼合客觀事實。
并且,很可能你的“解決方案”就已經走上了一條“錯誤的路”、你還強行把別人帶進“陷阱中”之后再去解決問題!
大神你好,
我們只就事論事,就情況論情況,既然提出了這個問題,就是以這個問題為基礎討論是否有更好的辦法,其它的都不考慮
如果都覺得回圈來處理是最好最快的,那就沒法了。
uj5u.com熱心網友回復:
不是“用回圈最快”,而是你這樣的問題只適合用回圈來處理!這種問題“用回圈”是必然的!
至于“總共需要多少時間”,主是看“要做多少事”,而不是看用沒用回圈。
但是,“回圈”程序中的“每完成一步”要消耗多少時間,那就是看你如何去“規劃、設計”的問題了。
針對“同一組資料”處理后達到同一個目的,也許張三的代碼要10ms、李四的代碼要15ms,
這是各人的“編程技術水平”、解決思路與程序(這個又是間接的由“編程水平”決定)的問題,
跟“用不用回圈”沒有直接關系。
uj5u.com熱心網友回復:
既然你在11樓這樣“表態”了,我能說的也應該只有這些了。自己看著辦吧。
uj5u.com熱心網友回復:
既然你在11樓這樣“表態”了,我能說的也應該只有這些了。
自己看著辦吧。
大神你好。我剛仔細看圖,是橫向100萬行,豎向100列。
如果回圈對比,那就最少要回圈100萬次
是否可以換個思路考慮?
你看,第一列,是10100011001100.。。這樣的標準數字,能不能將第一列整體看成一個100萬位的數字?=X1
然后第2列看成是第2個數字X2?
這樣看的話,一共有100個數字。
那么我是不是可以這樣理解。
x1+x2+x3.....+x9=W1
x10+x11+..x19=w2
這樣一共有10個W
然后10個W再相加,=Q
那么這個Q就是我所需的。
這樣處理的話,是不是計算量只有100次呢。和100萬次的計算量,比起來。。。。
不知道這樣的思路行不行
uj5u.com熱心網友回復:
就假設把你的“資料”看著是“二維表格”,那這每一個“單元”也是獨立的,你并不能直接“把幾個連續單元看作另一個‘整體’”來對待。
不管你是100行、100萬列,還是100萬行、100列,
就算你“每個單元”的值都是0或1,這每一個“單元”也是至少要占用1個位元組,而不是一個“bit”。
退一萬步說:
就算你能“把連續的幾個單元看著一個整體”,然而你是要計算“每一行有多少個1”,
這也要“拆開來統計”,而不能直接得到。
打個比方說,一個Long型別的整數數值 &H4567ABCD,你要得出“這個數有多少bit位是1”,
這也得用一系列的代碼檢測每一位是否為1并進行計數,
據我所知,計算機的“機器指令”也并沒有提供直接的指令取這種結果。
所以說,你14樓所謂的“思路”在這種應用中根本就是行不通的。
uj5u.com熱心網友回復:
就假設把你的“資料”看著是“二維表格”,那這每一個“單元”也是獨立的,
你并不能直接“把幾個連續單元看作另一個‘整體’”來對待。
不管你是100行、100萬列,還是100萬行、100列,
就算你“每個單元”的值都是0或1,這每一個“單元”也是至少要占用1個位元組,而不是一個“bit”。
退一萬步說:
就算你能“把連續的幾個單元看著一個整體”,然而你是要計算“每一行有多少個1”,
這也要“拆開來統計”,而不能直接得到。
打個比方說,一個Long型別的整數數值 &H4567ABCD,你要得出“這個數有多少bit位是1”,
這也得用一系列的代碼檢測每一位是否為1并進行計數,
據我所知,計算機的“機器指令”也并沒有提供直接的指令取這種結果。
所以說,你14樓所謂的“思路”在這種應用中根本就是行不通的。
以VB來說
如果有2個數
X1="11011110011101101101000000011111000....."
X2="10000000001111111111111111110000000....."
方法1,回圈
dim w(1000000) as string
for i=1 to len(x1)
w(i)=val(mid(x1,i,1))+val(mid(x2,i,1))
next i
結果=join(w,"")
方法2,不回圈
結果=X1+X2
你覺得哪種方法比較快呢
uj5u.com熱心網友回復:
一行代碼就是一行指令。這是匯編時代的思想。
How old are you? 樓主
uj5u.com熱心網友回復:
. . . . . . . . .
以VB來說
如果有2個數
X1="11011110011101101101000000011111000....."
X2="10000000001111111111111111110000000....."
方法1,回圈
dim w(1000000) as string
for i=1 to len(x1)
w(i)=val(mid(x1,i,1))+val(mid(x2,i,1))
next i
結果=join(w,"")
方法2,不回圈
結果=X1+X2
你覺得哪種方法比較快呢
你這兩個“結果”根本就不是同一個東西,有可比性嗎!
uj5u.com熱心網友回復:
結果一樣的啊。舉例簡單點來說
X1=10101
X2=11100
用回圈得到法得到的結果是
W=21201
而直接相加的結果
W=X1+X2=21201
uj5u.com熱心網友回復:
結果一樣的啊。
舉例簡單點來說
X1=10101
X2=11100
用回圈得到法得到的結果是
W=21201
而直接相加的結果
W=X1+X2=21201
你這兒的10101,11100是你“處理”過的結果,既然這樣,那為什么不把在主樓提出來的問題直接換成1維陣列,每一個元素都是一個100位數?
uj5u.com熱心網友回復:
樓主本質目的是為了加快速度。我倒是有個辦法。樓主把任務劃分到N臺機器上運行,然后綜合。uj5u.com熱心網友回復:
結果一樣的啊。
舉例簡單點來說
X1=10101
X2=11100
用回圈得到法得到的結果是
W=21201
而直接相加的結果
W=X1+X2=21201
你在16樓提到的是“兩個很長的字串”,
而這兒“簡單點”的是“位數很少”的兩個整數而已!
這根本就不是“同一類”的東西,能進行直接比較???

就算是“有限位數”的整數吧,按你在“主貼”中的描述,你得進行“100萬個”或“100個”數的“按位累加”,
請問你能“用一個10進制位”表示100以內的數值(甚至“100萬”以內的數值)???

我看你自己連最根本的“邏輯關系”都沒理清楚吧…………
uj5u.com熱心網友回復:
無profiler不要談效率!!尤其在這個云計算、虛擬機、模擬器、CUDA、多核 、多級cache、指令流水線、多種存盤介質、……滿天飛的時代!
uj5u.com熱心網友回復:
百萬回圈改為一句陳述句(呼叫一個函式)不等于執行的時間就從百萬降到了一。
圖樣圖森破,少年!
我覺得有的內置函式是人家微軟發明出來的,做的肯定比我們自己寫的,要先進好多吧。,,
寫代碼,回圈必不可避免;人家內置的函式確實比我們大部分人寫的效率高很多,估計那是對資料結構和演算法等進行過多次優化的結果,看看人家excel2007,100多萬行,16000多列,那么多的單元格,管理的挺好的。當然,我們也不能妄自菲薄....
不知道你的2維陣列怎么來的,產生資料的時候做一次加法,增加一列還是很簡單的。
uj5u.com熱心網友回復:
可以考慮下CUDA,GPU,ML之類的方向。uj5u.com熱心網友回復:
確定是二維陣列?或者是其它結構存盤的?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/65429.html
標籤:網絡編程
