分享

随即生成符合三角形的三条边

 X的世界 2012-11-01
算法思想:按照递增的思路,逐个生成。比如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");
    }
    
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约