AI代码的特征(9.1更新)
2025-09-04 17:43:52
发布于:浙江
审核比赛的可以看这个(doge---下一期的主题,你们来定!私信我,我会采取我认为最好看的主题来写一篇文章-------------------------------------------
请不要以自己作为某种特例来反驳这些AI所表现出的特征
AI的代码编辑本来就是按照程序员最科学严谨的方式编写的
所以,如果你遇到了与AI码风相似的情况
请不要以“我写代码就会有XXX条特征”的格式发表评论
有特例是正常的
**作者终于要更了
更新预告:大型纪入片《人类代码的特征(AI代码的特征姊妹篇)》
神秘链接
作者用的是乱七八糟的语言,AI看不懂(自带防伪
发现评论区一个很好玩的东西
*关注我,下期继续揭晓其他主题
如果有AIer把这一段喂给AI,也不需要担心;
管理会出手
本来就有很多人类也有的特征,喂给AI反而欲盖弥彰
后期修改的AIer我们这篇帖子也没辙
所以,你可以把这一篇当做识别AI的手段,或是当做水帖也可以
食用过AI的人总是能轻易的看出AI代码的特征,但是总有一些非常厉害的AIer。以下特征可以帮你揪出他们
1.几乎不用万能头
2.设置的变量很长,并经常带有下划线
例如:
人
int c,n;
string b;
AI
int count,number;
string bad_thing;
3.遇到黄题以上的题目,第一个代码是部分分甚至没分的。至少要让他修改到第二段代码以上才会正确。修改次数与题目难度有关
4.注释像是给别人看的
5.代码中的空格一个不缺,非常多
6.会运用一些大多数人所不知道的,老师不会讲的函数或运算符
7.基本只用vector动态数组
8.不会在主函数里写很多代码,基本都是void函数
9.有时候不加using namespace std;代码里全是std::
10.对题目的要求有时候会无视,自己创建
11.对于类似的、不同题目的代码,AI有时会认为是同一道题的
12.AI有时会越界判断,例如题目要求1<n<1e9,AI会判断为零的情况
13.AI 对返回值为 void 的函数通常不写 return;
14.AI对于格式这方面总是PE
15.相比于人类,AI会用我们基本不会用的指针和链表
16.部分AI生成for循环时会采用++i,但由于使用这个的人类比AI更多,所以不建议作为评判依据
17.for循环的一次性变量AI会使用不同变量名(大多数
18.AI在输出时可能使用三目运算符等方式确保不会输出行末空格
19.AI经常不必要地输出行末回车
20.AI基本不使用#define
21.AI基本不会将多个操作变量的语句间使用逗号分隔(如s-=a[i],k<<=2之间的)
22.AI经常创建变量存储接下来要用到的值,尽管这个值可能非常简单且使用很少(如多重背包的k*w[i])
23.一些AI的代码会在int main(){}上加一个空行
24.喜欢写类似于循环条件为char c:s之类
例如下面的深搜模版
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
// 递归实现模板
void dfs_recursive(int node, vector<bool>& visited, const vector<vector<int>>& graph) {
visited[node] = true;
// 处理当前节点(如输出、记录路径等)
cout << node << " ";
for (int neighbor : graph[node]) {
if (!visited[neighbor]) {
dfs_recursive(neighbor, visited, graph);
}
}
}
// 迭代实现模板(显式栈)
void dfs_iterative(int start, const vector<vector<int>>& graph) {
vector<bool> visited(graph.size(), false);
stack<int> stk;
stk.push(start);
while (!stk.empty()) {
int node = stk.top();
stk.pop();
if (!visited[node]) {
visited[node] = true;
cout << node << " ";
// 逆序入栈保证顺序与递归一致
for (auto it = graph[node].rbegin(); it != graph[node].rend(); ++it) {
if (!visited[*it]) {
stk.push(*it);
}
}
}
}
}
int main() {
// 示例图结构(邻接表表示)
vector<vector<int>> graph = {
{1, 2}, // 节点0的邻居
{0, 3, 4}, // 节点1的邻居
{0, 5}, // 节点2的邻居
{1}, // 节点3的邻居
{1, 5}, // 节点4的邻居
{2, 4} // 节点5的邻居
};
cout << "递归DFS: ";
vector<bool> visited_rec(graph.size(), false);
dfs_recursive(0, visited_rec, graph);
cout << "\n迭代DFS: ";
dfs_iterative(0, graph);
return 0;
}
还有一种神秘方法:
对于聪明的AIer,我们可以把题目喂给每一个AI(目前基本是deepseek),然后核对所用方法是否一致
不用担心AIer把此篇喂给AI
如有缺失,欢迎补充
//请把特征||AI代码发在评论区,如有代表性,会采取
此文章并不反对AI,但是不能不正当的运用AI
全部评论 114
看到第12条我蚌埠住了,每次我问WA助手我错哪,它老是问我是否考虑n为0,但是题目保证了1<n
1周前 来自 上海
8这个真难绷
1周前 来自 广东
2它还
不知好歹(友善)地表示“虽然题目保证了n>0,但是还是要判断一下n=0的情况”1周前 来自 上海
2是的,有一次我用Prim做一道最小生成树,WA、TLE了,问AC助手它就提到了这点(后来我去问了老师,说Prim基本没法做)。
1周前 来自 广东
0
AI宁可用typedef,也不用define
1周前 来自 浙江
4上榜了
6661周前 来自 浙江
3%%%
1周前 来自 上海
01周前 来自 浙江
1
其实nxt_/new_/lst_这种还是经常有人用的,而那种sum加下划线的话一般会省略下划线,比如我会用sumx,但是会写nxt_time之类的。另外,那种什么beautiful_prime啊,total_a啊什么的基本就实锤AIer了
5天前 来自 上海
2再说了多维不开vector你不MLE谁MLE
5天前 来自 上海
2
作者没少用AI,这么熟悉AI的性质()
1周前 来自 北京
2这些不是显而易见的吗
1周前 来自 浙江
3!
6天前 来自 上海
0
第23条不对啊,我就喜欢浪费行,看起来好看
1周前 来自 浙江
2指的是大部分
1周前 来自 浙江
0请勿钻牛角尖
1周前 来自 浙江
0meto
1周前 来自 广东
0
补充:广搜题不跟AI说是广搜它会写深搜代码
1周前 来自 北京
2已补充
1周前 来自 浙江
0最短路呢()
1周前 来自 河北
0
AI在赋值
bool
类型变量时,会优先赋值ture
false
而不是19小时前 来自 上海
1之前我都不管讨论这一块了,现在我发现你多么的有趣
3天前 来自 浙江
1?666
3天前 来自 浙江
0
之前我有一次用ai做了一道题去问我的老师说为什么不过。然后他说那个vector开的太浪费了,然后直接就TLE,然后那注释也是一段一段的,我删都懒懒得删,太恶心了,所以我以后就再也不用ai了,有些时候还答非所问
3天前 来自 浙江
1我觉得第一条可以改一下,就是遇到黄体以上的题目,第一个代码是部分分甚至没分的。至少要让他修改到第二段代码以上才会正确。修改次数与题目难度有关
3天前 来自 浙江
1ok
3天前 来自 浙江
0
试了一下,因为你这段话里有些是写AI的特点,有些是写AI不会这样做,所以我把你这段话喂给AI后他无法分辨到底是什么特点,所以还是去不掉AI味儿
6天前 来自 上海
1AI总会打一些像
cout << “xxx的结果是”<< x << endl;
的输出
1周前 来自 广东
1我看成了xxs的结果是qwq
6天前 来自 浙江
0
我深有体会
1周前 来自 浙江
1除了极为若只的和正确率,几乎都中了
1周前 来自 上海
1相比于人类,AI会用我们基本不会用的指针和链表¿
1周前 来自 江西
0迭代器
1周前 来自 上海
0
ai喜欢末尾输出换行
1周前 来自 广东
1666榜九了
1周前 来自 浙江
1榜八了
1周前 来自 浙江
1榜7了
6天前 来自 江西
1榜5了
3天前 来自 上海
1
ai喜欢总结出一堆数学结论,人一般喜欢暴力枚举
1周前 来自 广东
1AI也会暴力的
1周前 来自 浙江
0一般
昨天 来自 广东
0
AI的代码通常变量的名字都是一整个的英语单词,还带下划线的那种
例如:
人:int cnt=0,num=3;string bad;
AI:int count=0,number=3;string bad_thing;
1周前 来自 上海
1有了
1周前 来自 浙江
0抱歉眼瞎了
1周前 来自 上海
0。。。我见过有真人也这样写的,
1周前 来自 上海
0
第5条有点说不过去了吧?看我平时的代码
1周前 来自 江西
1加空格增强代码可读性
1周前 来自 江西
0补充:一些AI的代码会在开头加一个空行
1周前 来自 江西
0ok
1周前 来自 浙江
0
有帮助,赞一个