一,什么是暴力破解法?
暴力破解法,就是把所有条件,相关情况统统考虑进去,让计算机进行检索,指导得出与之所有条件符合的结果
(但是,暴力破解法对计算机资源耗费严重,如果条件太复杂,运算速度缓慢,为了解决这一问题,我们可以事先把与之不相关的条件进行限制,减少计算机的运算量)
二,暴力破解法应用
1.鸡兔同笼
问题:有鸡兔共50头,共有脚120只。 问 :鸡兔分别的数量?
【理解】
鸡的头和兔子的头数想加为50个,情况数量并不是很多,最多50个最少0个,是有限的,这个问题就可以使用暴力破解的方法来解决。
【代码如下】
public class OneDay {
public static void main(String[] args) {
//x为鸡的数目,最小是0,最大为50,在一个循环中一个一个的测试,看哪一个条件能够满足题目要求
for(int x=0;x<=50;x++){
int y=50-x;
if(x*2+y*4==120)
{
System.out.println("x="+x+"y="+y);
}
}
}
}
【答案】
x=40 y=10
2.韩信点兵
韩信知道部队人数大约1000人左右,具体数字不详,5人一组剩余1人,7个人一组还剩两个人,8个人一组还剩3个人,问:这支部队有多少人?
【理解】
可以使用暴力破解法的方式,枚举所有情况,显然人数就是我们列举的情况;
【代码如下】
public class OneDay {
public static void main(String[] args) {
for(int i=0;i<=2000;i++)
{
if(i%5==1 && i%7==2 && i%8==3)
{
System.out.println(i);
}
}
}
}
【答案】
51
331
611
891
1171
【总结】
暴力破解法:仅仅就是对所有可能的情况逐一的去列举,并且用条件进行筛选,把满足条件的列举出来,就可以了。