:::info 算法分析与设计两门课程的学习笔记 :::

形式化定义

对于一个问题,将其进行科学的分析研究,就需要对其进行更加严谨的形式化定义,其形式就类似于数学建模过程中的构建出数学模型一样,对其进行问题的抽象化提取,以及合理的公式化,就比如“0-1背包”问题中:
image.png

判定性问题

类似于数学建模当中模型的求解,在给定模型以及约束条件的情况下求出符合该约束条件下的模型解:
image.png

例子:Euclid-GCD问题

问题描述
将每个整数分解为素因子的积,找出公共的素因子,它们的积即是GCD
问题思路
image.png
代码实现

  1. package com.wztlink1013.al.EuclidGCD;
  2. import java.util.Scanner;
  3. public class Main {
  4. public static void main(String args[]){
  5. Scanner input = new Scanner(System.in);
  6. System.out.println("请输入两个大于零的自然数:");
  7. int a = input.nextInt();
  8. int b = input.nextInt();
  9. GCD(a,b);
  10. System.out.println(a + "和" + b + "两个数的GCD值为:" + GCD(a,b));
  11. }
  12. public static int GCD(int i, int j){
  13. int r;
  14. while (j != 0){
  15. r = i%j;
  16. i = j;
  17. j = r;
  18. System.out.println("a="+i+";b="+j+";r="+r);
  19. }
  20. return i;
  21. }
  22. }