作者MOONY135 (談無慾)
看板C_and_CPP
標題Re: [問題] 窮舉法 未知數位置不定
時間Sat May 20 23:03:06 2017
※ 引述《ptt0720 (濕濕)》之銘言:
: 開發平台(Platform): (Ex: Win10, Linux, ...)
: macOS
: 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 問題(Question):
: http://i.imgur.com/Lu5Pqib.jpg
: 餵入的資料(Input):
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: 補充說明(Supplement):
: 看起來要窮舉沒錯
: 但是因為未知數位置不定
: 所以我打算在字串內讀ascii code
: 不是數字就要判斷
: 但是我要如何組合完輸入的那三行等式
: 而且未知數也有可能是好幾個或一個
: 我跑未知數的迴圈也是個問題
: 有沒有大大能提供一些不同的思維呢
Z的位數一定大於等於 X OR Y
所以第一個FOR迴圈只要去掃 Z裡面有幾個非數字
(不考慮第一個位數是參數的狀況 這邊要另外寫 看完下面算法你再去想想看好了)
所以假設 Z = 1AB2C
A & B & C的 range都會是0~9
只要考慮 for迴圈是000~999 然後依序填入就好
for迴圈的range會是 n=參數 10^n-1
然後比對x 跟 y哪個比較小
然後 z%min(x,y)==0之後 得到的z 再去跟max(x,y)做參數的
substring即可
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.46.32
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1495292589.A.39D.html
1F:→ pttworld: x, y也有非數字。文中的比對是什麼意思。 05/20 23:08
長度
這樣for 迴圈可以跑得比較少一點
2F:→ pttworld: 如產生x or y也是迴圈,在迴圈未定義幾層的情形, 05/20 23:14
3F:→ pttworld: 跑迴圈如何寫。範例只是簡單案例。 05/20 23:15
4F:→ pttworld: 而這種方法可以僅描述暴力法排0到9。 05/20 23:17
X AND Y的迴圈比照Z辦理阿...
可推論的出來要跑幾圈...
可以舉個反例給我嗎...複雜案例是?
※ 編輯: MOONY135 (111.251.46.32), 05/20/2017 23:22:57
還是你的複雜案例是 A=123之類的
※ 編輯: MOONY135 (111.251.46.32), 05/20/2017 23:23:59
5F:→ pttworld: 二組以上xyz,非數字數量不同,程式寫法。 05/20 23:45
6F:→ pttworld: 另外是乘會比除快。乘的做法只要跑x和y, 除的做法要跑z 05/20 23:48
7F:→ pttworld: 加x或y之一。x+y長度相當於z。 05/20 23:48
這樣看起來乘的好像真的比較快
※ 編輯: MOONY135 (111.251.46.32), 05/20/2017 23:51:36