算法思想:按照递增的思路,逐个生成。比如a<b<c, 即根据规则a+b>c 和c-b<a这两个原则,先生成a,后生成b,c。(也可按照递减的思想,其思想与前面类似) 代码如下所示: import java.util.List; import java.util.Random; public class GenericTypes { public GenericTypes() { } static void swap(int a,int b){ int temp=a; a=b; b=temp; } public static void main(String args[]) { Random random=new Random(); boolean success=true; int a=0,b=0,c=0; for(int k=0;k<1000;k++){ // System.out.println(random.nextInt(1)); a=random.nextInt(100)+1; if(a==100) { a=b=c=100; System.out.println("a="+a+"\tb="+b+"\tc="+c+"\n"); } else{ b=random.nextInt(101-a)+a; if(b==100)c=100; else{ // int cha=Math.abs((a-b)); int sum=a+b; if(sum>100)sum=100-b; else sum=a; c=random.nextInt(sum)+b; } // System.out.println("a="+a+"\tb="+b+"\tc="+c+"\n"); if(!(a+b>c&&c-b<a)){ success=false; break; } if(c==1)System.out.println("a="+a+"\tb="+b+"\tc="+c+"\n"); } } // if(a ==100) System.out.println("a="+a+"\tb="+b+"\tc="+c+"\n"); if(success)System.out.println("success"); else System.out.println("failure"); } } |
|