分类:方向三:实践记录以及工具使用-刷题实践选题-功能亮点和刷题实践
为了体验深入剖析 AI 刷题的功能亮点,阐述其对学习的重要性和独特价值,总结 AI 刷题的优势之处,并通过实践案例展开分析相关功能是如何帮助你学习的,这里我们选用中等难度的题目,量化数字的统计为例子。
### 问题描述
小M最近对一种特别的数字产生了兴趣。他称某个数字为“量化数字”,当且仅当这个数字满足以下两个条件:
- 该数字能被
3整除。 - 该数字的所有位数都是相同的数字。
例如,数字666是一个量化数字,因为它能被3整除,并且所有位数都是6。
现在给定两个整数L和R,你需要统计在L到R范围内(包括L和R)的所有量化数字,并返回这个数字的个数。
功能亮点
可以看到,marscode的刷题平台有云端编辑器功能,可以写代码、保存代码、运行、以及调试。
旁边的AI助手可以给我们思路提示、代码提示和代码检查。功能非常齐全
以思路提示为例子,它会逐步剖析算法步骤,给出每个步骤的思路。然后再提示完之后,还会给出下一步的提问提示。对于常用的问题,用户只要点击问题即可。例如它在算法过程中提到,需要判断一个数字是否是量化数字。AI考虑到用户可能不会写出这块的代码,因此在生成完结果后,在接下来的任务列表中添加了“如何判断一个数字是否是量化数字”这一个问题。这说明字节的AI代码助手可以对问题和自己的回答进行评估,并且规划下一步可能需要执行的任务。这是大模型训练的一个方向,即对任务进行拆分,规划,回答,评估,然后继续进行规划。这样,大模型可以实现更好的推理效果。
代码实现
最后,我们在AI的提示下,编写出下列代码,测试通过。
def solution(L: int, R: int) -> int:
count = 0
# Define possible "quantified numbers" that have all identical digits within the range [L, R]
def generate_quantified_numbers(L: int, R: int):
quantified_numbers = []
for digit in range(1, 10): # Digits from 1 to 9
length = 1
while True:
number = int(str(digit) * length)
if number > R:
break
if number >= L:
quantified_numbers.append(number)
length += 1
return quantified_numbers
quantified_numbers = generate_quantified_numbers(L, R)
# Check each quantified number within the range [L, R]
for num in quantified_numbers:
if num % 3 == 0:
count += 1
return count
if __name__ == '__main__':
print(solution(L = 5, R = 125) == 6)
print(solution(L = 10, R = 300) == 5)
print(solution(L = 100, R = 999) == 9)