一个普通技术宅的点点滴滴

0%

学习总结第二十天——欧几里得算法及其他

今天了解了算法的鼻祖——欧几里得算法(辗转相除法),虽然这个算法是一个挺简单的算法,但是还是花了不少时间去弄懂,也算是体现出了我在算法上的不足。
算法如下:

    int gcd (int p,int q)
    {
      printf("p=%d,q=%d\n",p,q);
      if(p==0)
      return q;
      if(q==0)
      return p;
      if (p>q)
      return gcd(p%q,q);
      else
      return gcd(p,q%p);
    }

BTW,今天读了数学之美,又认识到了很多数学工具在解决实际问题的重要性,特别是概率论,让我受益匪浅。比如,语义识别最有效的方法不是词法分析,而是概率模型。