Re: [问题] 穷举法 未知数位置不定

楼主: MOONY135 (谈无欲)   2017-05-20 23:03:06
※ 引述《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即可
作者: pttworld (批踢踢世界)   2017-05-20 23:08:00
x, y也有非数字。文中的比对是什么意思。如产生x or y也是循环,在循环未定义几层的情形,跑循环如何写。范例只是简单案例。而这种方法可以仅描述暴力法排0到9。二组以上xyz,非数字数量不同,程式写法。另外是乘会比除快。乘的做法只要跑x和y, 除的做法要跑z加x或y之一。x+y长度相当于z。

Links booklink

Contact Us: admin [ a t ] ucptt.com