算法 如果用通俗易懂的语言来说,算法就是“把解决问题的步骤无一遗漏地用文字或图表示出来”。要是把这里的“用文字或图表示”替换为“用编程语言表达”,算法就变成了程序。而且请诸位注意这样一个条件,那就是“步骤必须是明确的并且步骤数必须是有限的”。
典型算法 计算不能自发地思考。因此计算机所执行的由程序表示的算法必须是由机械的步骤所构成。所谓“机械的步骤”,就是不用动任何脑筋,只要按照这个步骤做就一定能完成的意思。众多的学者和前辈程序员们已经发明创造出了很多机械地解决问题的步骤,这些步骤并不依赖人类的直觉。由此所构成的算法被称为“典型算法”。
辗转相除法 辗转相除法(又称欧几里得算法)就是一个机械地求解最大公约数问题的算法。 辗转相除法可以求两个数的最大公约数,两个数相乘除以最大公约数可以得两个数的最小公倍数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #!/usr/bin/env python # -*- coding: utf-8 -*- # minyt 2020.8.25
a = input("Please input num a: ") b = input("Please input num b: ") aa = a bb = b
while a != b: if a > b: a = a - b else: b = b -a else: print "the greatest common divisor is : " ,a print "the least common multiple is : " ,aa*bb/a
|
埃拉托斯特尼筛法 判断一个数是不是素数,用这个数分别除以比它小的所有正整数,如果没有找到能够整除的数,那么这个数就是素数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #!/usr/bin/env python # -*- coding: utf-8 -*- # minyt 2020.8.25
a = input("Please input num a: ")
if a > 1: for i in range(2,a-1): if (a % i ) == 0: print a, " is not primer." break else: print a, " is primer." else: print a, " is not primer."
|
石头剪刀布 0代表石头 1代表剪刀 2代表布
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #!/usr/bin/env python # -*- coding: utf-8 -*- # minyt 2020.8.25 import random a = input("Please input num a: ") b = random.randint(0,2)
print "The computer randow num is " ,b
if a == b: print "The two sides draw." elif a == (b+1)%3: print "You failed." else: print "You won."
|