Java数组

import javax.swing.JOptionPane;


public class ketang1 {

    public static void main(String[] args) {
        //求一个数是否是素数

    /*String s=JOptionPane.showInputDialog(null,"请输入一个数");
    int x=Integer.parseInt(s);
    boolean j=false;
     for(int y=2;y<x;y++ )  //输入一个数判定是否是素数
     {
         if(x%y==0)        
         {
             j=true;
         }

     }

      if (j==flse){

                  System.out.println("这是一个素数");

else{

         System.out.println("这不是一个素数");

}

}

        //定义一个数组并打印
     int[] a=new int[6];
     a[0]=5;a[1]=9;a[2]=4;a[3]=20;a[4]=16;
     System.out.println(a[0]+" "+a[1]+" "+a[2]+" "+a[3]+" "+a[4]);
     //定义循环的数组
     for(int i=0;i<a.length; i++)
     {
         System.out.println(a[i]);
     }*/
        //创建数组并给他们赋初始化值
  /*   int[] p={7,9,5,12,23};
     for(int g=0;g<p.length;g++)
     {
         System.out.println(p[g]);
     }*/
        //定义一个字符串的并用循环打印
    /*    String a[]={"s","b","t","ds"};
        for(int i=0;i<a.length;i++)
        {
            System.out.println(a[i]);
        }
        */
        /*    int a[]=new int[5]    ;                                    //打印用户输入的整数
                                                    //定义一个 数组个数为5
        for(int i=0;i<a.length;i++)
        {
        String s=    JOptionPane.showInputDialog(null,"请输入5个数");
            a[i]=    Integer.parseInt(s);                                    //每次把用户输入的数字转换为int类型的
        }
        for(int x=0;x<a.length;x++)
        {
            System.out.println(a[x]);
        }
                        */                                //请用户输入5个数
                                                         //把用户输入的值转换为int类型的赋值给a【i】a0 a1 a2 a3 a4
        
                                                        //输入打印用户输入的数用一个循环 因为上面已经把数取到
        
            ;
        
        //打印用户输入的字符串 //设置一个4个字符串的数组 写一个循环每次用户输入的值给数组中的元素 因为这个输入的
        //是字符串类型的所以说可以直接赋值
        /*    String a[]=new String[4]; //设定一个数组用来存储字符串
            for(int x= 0;x<a.length;x++)        //用一个循环来给数组中的元素赋值 每次用户输入的数都赋值给a[x]
            {
                String s=JOptionPane.showInputDialog(null, "请用户输入名字");
                a[x]=s;        //这是给a[x]赋值的因为s是字符串所以可以直接赋值不用转换
            }
            for(int x=0;x<a.length;x++) //输出这a【x】的值这个是把用户输入的值赋给元素后下标上的值
            {
                System.out.println(a[x]);
            }
            */
        
        //首先把他们每个的角标数取出来再进行比较 设置第三方变量
        //定义一个记录他的角标的变量当一个数 需求 求一个数的最大的值 并记录他的角标号
        /*int[]a={4,58,6,7,98};//定义一个数组
         int max=0;   //定义一个存储最大数的一个变量设置为Max
         int man=0;        //定义一个求他角标号 的一个变量
         for(int x=0;x<a.length;x++) //首先把数组中的角标号来和max相比
         {
             if(a[x]>max){          //如果比max的值大那么把a【x】角标号的值赋给max如果比他小则继续循环知道所有
                 max=a[x];            //角标号的值和max比完那么最后在max中的值就是其最大的数
                 man=x;                //如果a[x]的值比max大那么就把他这次循环的次数赋值给man这就是最大位的角标号
             }
         }
         System.out.println(max); //输出打印最大数的值和角标位
         System.out.println(man);*/
        //首先輸入數組字符串類型的 再設定一個记录他角标的变量当用户输入的名字
        //和我们数组中有一样的时候把i赋值给 max纪律他的变量
        //判定如果等于结果是真否则为假 跳出循环判断c的值是真是假如果是真那么在
        //我的数组当中 有这个输入的值打印出他的名字 并打印出记录他位子的数字
        /*//
                String []t={"hu","jun","wen"};//创建字符串数组
                int x=-1;                      //设置判断他角标的号码为-1因为只要负数不在数组里所以是假
                
                String s=JOptionPane.showInputDialog(null,"请输第个姓名"); //请用户输入一个名字
                for(int y=0;y<t.length;y++)  //执行循环把t中的名字和用户输入的名字进行比较
                {
                    if(s.equals(t[y]))
                    {
                        x=y;           //假如相同的话把 y的值赋给x ,y的值是这个名字的角标位数 他循环了几次就在几位跳出
                        break;
                    }
                }
                if(x==-1){              //判定如果x==-1的话说明这个数组里没有满足用户输入名字的一个数
                    System.out.println(s+"没这个人");
                }else{
                    System.out.println(s+"有这个人在第"+x+"位");//如果不等于-1说明里面的判断满足 用户输入的s和数组里有同样
                }                                                *///的把y的值赋给x并打印
                
        //需求打印出员工姓名和工资 先定义一个字符串类型的数组
        //在定义一个int类型的数组接受用户输入的工资 在把每次打印的结果赋值给角标
        //在打印出他们工资和员工对应的姓名
    
                String a[]=new String [4];        //首先声明一个字符串型的数组来存储他们的名字
                int    b[]=    new int[4];            //再声明一个数组来存储他们的工资
                int max =0;                            //定义一个max来存储他们的工资最多的如果b[i]大于max那么就把其值
                int man=-1;                    //赋值给max  在定义一个记录他们下标的数-1因为他们输入都是对应的缩影下标相同
        
                for(int x=0;x<a.length;x++) //循环用户输入的4个名字和工资
                {
                String w=    JOptionPane.showInputDialog(null,"请输入名字");
                String q=    JOptionPane.showInputDialog(null,"请输入工资");
                a[x]=w;
                b[x]=Integer.parseInt(q);    //循环一次赋值一次a0 b0 a1 b1 直到他们赋值完成输入4次
                
                }
                String str="姓名      工资"+"\n"; //定义一个字符串的变量用于连接每次输出一个值
                for(int i=0;i<a.length;i++)        //输入的值每一个都记录在数组中现在判定最高工资用循环判断
                {
                    str=str+a[i]       +b[i]+"\n";//用字符串连接他们姓名和成绩每次换行继续打印直达打印结束
                    if(b[i]>max) //如果max小与b【i】把把它的值赋给max
                    {
                        max=b[i];
                        man=i;                //那么最大的值得下标就是循环的次数 把循环的次数赋值给man记录
                    }
                }
                         JOptionPane.showMessageDialog(null, str);    
                         JOptionPane.showMessageDialog(null, a[man]+b[man]);//    打印出他们的值a【man】是他们的下标
                                                                            //就是他们最高工资和对应的姓名
        ;                                                        
        
                                                                  
        
        
    
            
            
        
        
                
                //需求输入一个姓名找找他们的工资
            
        
    /*    String []a={"胡君问","孙威","贾浩"};
        int b[]  ={20000,8000,7000};
        //接收用户的姓名
        String s=JOptionPane.showInputDialog(null,"请输入姓名");
        int w= Integer.parseInt(s);
        //    定义该姓名对应的下标
        int jj=-1;
         for(int i=0;i<a.length;i++)
         {
             //比较输入姓名和数组元素是否相等
             if(w==b[i])
             {
                 jj=i;
             }
         }
         if(jj==-1)//一直没有进入if里判断
         {
             JOptionPane.showMessageDialog(null, "查无此人");
         }
         else{
            
             JOptionPane.showMessageDialog(null, a[jj]);
         }*/
    /*    int a[]={12,7,6,8};
        int xb=0;//设置记录7的位置的角标
        for(int x=0;0<a.length;x++)
        {                    //循环判定这个数组有没7这个数
            if(a[x]==7) //如果a[]变量里有7这个数
            {
                xb=x; //那么就是把次数赋值给纪录角标的变量
                break;//再跳出循环 这个xb就是7的一个角标号
            }
            }
            for(int i=xb;i<a.length-1;i++)
            {                //循环通过替换的方式删除7这个数
                a[i]=a[i+1];//先把7的角标号赋值给i变量,i变量小于a数组减1
                            //因为3个数的替换只有两次第三次就没有替换的数字了
                            //在执行a[i]=a[i+1]这是在给7换位置因为xb就是7的角标号
                            //每次做加1的运算再赋值给a[i]那么a[i]就是6的角标号2
                            //不停的执行这样的循环直到条件不满足 换位成功 退出循环
            }
            for(int x=0;x<3;x++)//因为只有4个数字删除1个7还有3个所以x<3
                                //
            {
                System.out.println(a[x]);
            }
        */
        
    }
    
}
   

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值