FPGA-FOC:突破微秒级响应瓶颈的电机控制解决方案
2026/7/25 16:30:38
python# 这是注释,不会被执行# 1. 输出:在屏幕上打印文字print("Hello, OI!") # 打印字符串# 2. 输入:让用户输入一个数字name = input("请输入你的名字:") # input() 读取字符串print("你好,", name) # 逗号分隔多个输出# 3. 数值计算a = int(input("请输入第一个数:")) # input返回字符串,用int转为整数b = int(input("请输入第二个数:"))sum_result = a + bprint("两数之和是:", sum_result)# 4. 简单条件判断if sum_result > 10: print("和大于10,不错!")else: print("和小于等于10,继续加油!")这段代码展示了OI中最常见的操作:读取输入、输出结果、做简单计算。你可能会问:“这跟OI有什么关系?” 别急,很多OI题目第一步就是处理输入输出,比如:“输入两个整数,输出它们的和”。是的,有时候就这么简单!但更复杂的题目会在此基础上叠加算法。## 核心算法入门:暴力枚举和模拟OI中最基础的算法是“暴力枚举”和“模拟”。暴力枚举就是尝试所有可能,直到找到答案;模拟则是按照题目规则一步步执行。听起来像笨办法,但很多题目用它们就能解决,尤其是在数据规模小的时候。### 代码示例2:枚举找质数假设题目是:“输入一个正整数n,输出所有小于等于n的质数。” 我们可以用暴力枚举法:从2到n,每个数判断它是否为质数。判断质数的方法:检查这个数能否被2到它的平方根之间的任何数整除。pythonimport math # 导入数学库,用于sqrt平方根def is_prime(num): """判断一个数是否为质数""" if num < 2: return False # 只需检查到平方根 for i in range(2, int(math.sqrt(num)) + 1): if num % i == 0: # 如果能整除,说明不是质数 return False return Truen = int(input("请输入一个正整数n:"))print(f"小于等于{n}的质数有:")# 暴力枚举所有数for candidate in range(2, n + 1): if is_prime(candidate): print(candidate, end=" ") # end=" "让输出在一行print() # 换行这个例子体现了OI的思想:明确规则 → 逐个尝试 → 输出结果。虽然代码简单,但它是很多复杂算法的基础。比如,当你需要找出所有可能的密码组合时,用的就是枚举;当你需要模拟一个游戏过程时,用的就是模拟。初学者往往低估这种“笨方法”的力量,但请记住:先让程序跑起来,再优化!## 从暴力到优化:为什么要学算法?你可能觉得:“暴力枚举都能搞定,为什么还要学更难的算法?” 来看一个例子:假设题目要找1到100万之间的质数,暴力枚举每个数并判断,可能需要几秒甚至几分钟(取决于机器)。而如果使用“埃拉托色尼筛法”,只需几十毫秒。这就是算法的魅力:用更聪明的方法,换取更快的速度。OI中常见的优化方向包括:-时间复杂度:代码运行的速度(比如从O(n²)降到O(n log n))-空间复杂度:代码使用的内存(比如用数组代替递归)但作为入门,你不需要一步登天。先掌握暴力枚举,再逐步学习排序(冒泡排序、快速排序)、搜索(二分查找)、动态规划等。记住:理解每个算法的“为什么”比背代码更重要。## 实战小练习:模拟一个简单的“猜数字”游戏题目:计算机随机生成一个1-100之间的整数,用户每次猜一个数,程序提示“大了”或“小了”,直到猜中。统计猜的次数。pythonimport random # 随机数库# 生成目标数字target = random.randint(1, 100)guess_count = 0print("猜数字游戏开始!范围1-100")while True: # 无限循环,直到猜中 guess = int(input("请输入你的猜测:")) guess_count += 1 if guess < target: print("小了,再大一点") elif guess > target: print("大了,再小一点") else: print(f"恭喜!猜中了!用了{guess_count}次") break # 退出循环这个游戏用到了循环、条件判断、随机数,这些都是OI的基础。它虽然简单,但展示了“模拟”的过程:按照游戏规则一步步执行,直到达到目标。## 总结:OI入门没那么可怕今天我们学习了:1.基础语法:输入输出、变量、条件判断、循环2.暴力枚举:尝试所有可能的笨办法,但有效3.模拟:按规则一步步执行OI的核心不是背代码,而是把问题分解成计算机能执行的步骤。当你遇到一个题目时,先问自己:“如果我是计算机,我该怎么做?” 然后从最简单的方法开始写代码。等你能跑通暴力解法后,再考虑优化。学习OI就像建房子:语法是砖块,算法是图纸。先学会搬砖(写基础代码),再学会看图纸(理解算法),最后才能设计出自己的建筑。别被“动态规划”“图论”这些词吓倒,它们不过是更复杂的图纸而已。从今天开始,打开你的编程环境,写一个“Hello, OI!”,再试着自己实现一个枚举算法。你会发现:原来OI这么简单,而且这么有趣!