课程3动手动脑.

Posted 丹丹阳光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课程3动手动脑.相关的知识,希望对你有一定的参考价值。

 

 

1.纯随机数发生器

Xn+1=(aXn + c)mod m

Modulus=2^31-1=int.MaxValue

Multiplier=75=16807

C=0

当显示过2^31-2个数之后,才可能重复。

动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

package demo;

//RandomInt.java
//Shifted, scaled random integers
import javax.swing.JOptionPane;

public class Random {
public static void main( String args[] )
{
   int value;
   String output = "";

   for ( int i = 1; i <= 1000; i++ ) {
      value = 1 + (int) ( Math.random() * 1000 );
      output += value + "  ";
     
      if ( i % 5 == 0 )
         output += "\\n";
   }

   JOptionPane.showMessageDialog( null, output,
      "20 Random Numbers from 1 to 6",
      JOptionPane.INFORMATION_MESSAGE );

   System.exit( 0 );
}
}

程序截图:,这是随机生成50个数的,若要生成1000个数,可将程序中的i的大小设置位1000.

 

2.请看以下代码,你发现了有什么特殊之处吗?

 

上述示例代码展示了Java的“方法重载(overload)”特性。
满足以下条件的两个或多个方法构成“重载”关系:
(1)方法名相同;
(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。(方法的返回值不作为方法重载的判断条件。)

 3、用组合数公式利用n!来计算。

 代码:

package demo;

import java.math.BigInteger;
import java.util.Scanner;
public class project {
 public static void main(String[] args)
 {
  System.out.println("输入N");
  Scanner scan = new Scanner(System.in);
  System.out.println("输入k");
  Scanner scan1 = new Scanner(System.in);
  int number1 = scan.nextInt();
  int number2 = scan1.nextInt();
  System.out.println("The result is :" + calculateN2(number1,number2));
 }
 public static long calculateN(int n){
  if(n<=0){
   return 1;
  }
  else
  {
   return n*calculateN(n-1);
   
  } 
 }
 public static long calculateN2(int n,int k){
  
  if(calculateN(n) == 0 || calculateN(k) == 0)
  {
   return 0;
  }
  else
  {
   return calculateN(n)/(calculateN(k)*calculateN(n-k));
   
  }
 }

}

截图:

4、回文数的判断

程序:public class Recursive {
 public static void main(String[] args) {
  System.out.println("Is 我是谁是我  a Palindrome?"+isPalindrome("abcdcba"));
 }
 public static boolean isPalindrome(String s){
  if(s.length()<=1){
   return true;
  }else if(s.charAt(0) != s.charAt(s.length()-1)){
   return false;
  }
  return isPalindrome(s.substring(1,s.length()-1));
 }
}

截图:

 

以上是关于课程3动手动脑.的主要内容,如果未能解决你的问题,请参考以下文章

课程作业2:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档

课程作业02——课程中的动手动脑问题

课程作业02-2所有动手动脑问题以及课后实验课堂实验总结

java课程作业--动手动脑

课程作业10:异常处理课件中动手动脑的相关问题。

课程作业03-动手动脑(随机数函数重载50!)