去掉代码中的变量名

代码查重——LCS、Levenshtein距离、Jaro-Whinkle距离和变代换 内容介绍 基本功能实现 a) 预处理 b) LCS实现 c) 给出合适的r,求出D(i,j) 解决变量名代换的问题 a) 字面距离 b) 正则化截取 实验概述 对待查重的文件的预处理 LCS基本实现 对r、D(i,j)和递归公式的推导 字面距离(Levenshtein距离和Jaro-Winkler距离) 正则化表达式截取字符串 实验内容 基本实现 a) 预处理 首先,考虑到不同人编程的... 阅读详情

需求

一种常见的抄袭做法是修改方法名和变量名;
如果在查重的时候去掉这些元素,就可以避免相关误差。

做法

这个问题困扰我许久了…
思考过的解决方案:

常用词库

顾名思义就是把各个语言所有的常用语法列出来并保存,这些元素以及符号之外的字符就可以认为是变量名和方法名,处理源代码是删除它们即可。
这样做有很大的问题:
1.词库过于庞大。如python语言,不可能把所有外部库里的元素都遍历并储存。
2.失误率太高。一个变量名和词库中的某个词一致或相似,难以判断是否删除。
3.如何作为整体识别。以.或空格区分?效率太低且特殊情况太多。

混淆工具

下载了proguard-master。使用混淆工具问题也很突出:
1.功能不匹配。混淆工具会对代码进行整体检查,并把相应内容随机化;仅仅是去变量名,不太合适。
2.难以应用。即便使用混淆工具处理相关代码,一般需要修改代码,这就与查重相冲突;暂时修改的话,效率又太低。
3.语言的适应性。一般的混淆工具只能适应某一种语言,难以满足需求。

汇编级别

就像IDE能够识别代码中各个元素的性质一样,如果可以跨越到汇编层面,可能会实现相应功能;
这样全面展开的话,感觉会得不偿失,耽误进度。
故暂时不予尝试。

总而言之,没有实现。

matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了 当你在Coding Block中添加自定义字段的时候 阅读详情

相关推荐

ROS-订阅与处理激光雷达scan话题

激光雷达通常有四个性能衡指标:测距分辨率、扫描频率(有时也用扫描周期)、角度分辨率及可视范围。测距分辨率衡在一个给定的距离下测距的精确程度,通常与距离真实值相差在5-20mm;扫描频率衡激光雷达完成一次完整扫描的快慢,通常在10Hz及以上;角度分辨率直接决定激光雷达一次完整扫描能返回多少个样本点;可视范围指激光雷达完整扫描的广角,可视范围之外即为盲区。

weixin_42438635的博客 4453

要检测两个C文件的代码抄袭情况

抄袭部分输出 如果只是变量名替换了也算抄袭 如果输入了一些干扰代码以防止被检测出来也算抄袭专业程序代写c++程序代写 转载于:https://www.cnblogs.com/java20131201/p/3466383.html...

dfu54516的博客 475

三相永磁同步电机矢控制建模与仿真(包含simulink仿真文件与word文章 )

永磁同步电机具有体积小、效率和功率因数高等优点,因此越来越多的应用在各种功率等级的场合。永磁同步电机的控制是永磁同步电机应用的关键技术,永磁同步电机的结构特点使得采用矢控制系统有很大的优势。本文首先分析了永磁同步电机矢控制的发展概况,然后从机电能转换的角度出发,解释三相永磁同步电机的机电能转换原理,推导拉格朗日运动方程。此外,列写出永磁同步电机在三相静止坐标系和dq坐标系下的数学模型。基于Simulink建立了转速电流双闭环矢控制系统的仿真模型,通过对仿真结果分析,验证了永磁同步电机矢控制系统性能的优越性。

学习打卡8.5

论文写作 代码查重 方法一:加上自己的注释 方法二:利用查询,把变称全部改变 注意:一些文字的介绍需要自己总结,或者是把一些文字放到公式里面 加一个字母,把字体缩小,然后字体调成白色的 慎用 可以把附录的内容转化为PDF,用浏览器打开,然后在打印,但是会有一些损失,有风险 把文字的过程转化为流程图 不仅美观,而且不容易查重 制作三线表 第一步:取消底纹 第二步:改为无框线 第三步:调到1.5磅,加入上下边框 第四步:调到1.5磅,给第一行加入下边框 表格规范 文字大小需要和正文一致 字体设置为宋体 表

weixin_46382984的博客 333

函数变量名问题

1.如果输出一个函数,那么输出的就是这个函数的代码。 function test(){ console.log("哈哈"); } console.log(test); ...

weixin_39037804的博客 2779

动态规划—代码查重实验

动态规划—代码查重问题 实验概述 掌握动态规划算法设计思想。 掌握代码查重问题的动态规划解法。 实验思路 代码查重是一个比较经典的问题,相似的问题有论文查重等等。这里面的算法我也是一知半解,就提供一些思路和资料。 一个查重的经典方法就是动态规划求LCS最长子序列。 和论文查重不同的是,代码查重要考虑变量名、行顺序等等,抄袭代码可能会在这些方面做出改动。常见做法是将代码预处理,包括变量名...

StephenArk的博客 6985

Android studio 去掉Kotiln代码变量名下面的下划线

在Kotiln 代码变量名下面总是出现下划线?看着有没有很烦。 出现的原因: 是指该变为Reassigned parameter,即该变被多次赋值。 去掉的方法:

冬无雪的博客 2388

ICE源代码编译出错及问题的解决

下载ICE源代码后,解压至C盘,直接双击打开all.dsw,然后遵照vs.net IDE的提示,把所有项目文件转换为.net下的solution及vcproj文件。然后build->build solution。至此一切如常,然后在编译到ICE这个项目时,到了router.cpp文件时报错,错误显示如下:c:/Ice-2.1.0/src/Ice/Router.cpp(408): error C20

Ring3wraith的专栏 2427

清理并重置处理环境

根据代码的功能,它主要是在清理之前的文件版本、清除现有文档并更新AI处理任务。

Leon_Jinhai_Sun的博客 241

获取AI专属配置

代码】获取AI专属配置。

Leon_Jinhai_Sun的博客 256

ucos_ii的移植

首先:将所有的pdata 和data全部改成pdat和dat,去掉末尾相关的字母a

春风得意,马蹄仍急;少年豪情,一笑难回。 732

【VScode工具】开发快捷键

按 Ctrl +?直接输标签回车即可。

weixin_45179978的博客 350

JSON Metadata Extraction via LLM

这样的优化使代码更清晰、更专业,同时保持了原有的功能。日志信息也更易于人类阅读和理解。

Leon_Jinhai_Sun的博客 254

Python随机生成10个数,范围在1-100之间,并将它插入列表以及变式扩展操作(排序/去高低分/求平均值/取小数点用法)

ps:list作为python的内置函数,当前面命list后面有调用list()时会报错,不建议作为变量名,建议将变量名改为其他详细具体的数值,为了方便观看我就随便了。

2301_79262155的博客 4414

PDF首末页内容抽取

这些改进使代码更易读和维护,同时保持了原有的功能完整性。变量名和函数现在更加准确地反映了它们的用途和内容。添加了函数文档字符串,说明函数用途和参数返回值。代码结构更清晰,添加了注释分隔不同逻辑部分。保持原有所有功能不变,只是命上的优化。,去掉冗余的"content"

Leon_Jinhai_Sun的博客 139

技巧——代码查重

1.加注释 2.改变 3.汉字放到公式的格子里面 4.转化为流程图

m0_46152035的博客 4048

删除php变量名,php如何删除变

PHP的变或对象的销毁可以分成显式销毁和隐式销毁:1、显式销毁,当对象没有被引用时就会被销毁,所以我们可以unset或为其赋值NULL;2、隐式销毁,PHP是脚本语言,在代码执行完最后一行时,所有申请的内存都要释放掉;从上面两种销毁方式中,我们可以总结出销毁的三种方法:那就是1、unset()2、$varname=null3、析构函数__destruct()举例来说:class Human { ...

weixin_29021757的博客 225

CodeBlocks中统一改变变量名方法

CodeBlocks中统一改变变量名方法

lance~crazy 1305

用设计模式去掉没必要的状态变 —— 状态模式

这是设计模式系列的第四篇,系列文章目录如下: 一句话总结殊途同归的设计模式:工厂模式=?策略模式=?模版方法模式 使用组合的设计模式 —— 美颜相机中的装饰者模式 使用组合的设计模式 —— 追女孩要用的远程代理模式 用设计模式去掉没必要的状态变 —— 状态模式 业务场景 这是在UI开发中经常会遇到的场景:界面有两种状态,每一种状态下界面元素对应的操作都不同。比如在 off...

weixin_33893473的博客 201

JS:去掉Java代码中的注释(也适用于JS和C#)

用JS写的,用网页作为载体。欢迎有心人测试一下。因为没有学过算法,凭自己想象去写,也不知道好不好,凑合用吧。谈一下自己的理解。单行注释://... 或 /*...*/多行注释:/*...                ...              */如果这些字符在字符串里面,就不是注释了;如果字符串在注释里面,就不是字符串了;还有js的正则表达式的特殊语法的捣乱;还有转义字符/(反斜杠)的搞

epinszteinic的专栏 4497
上一篇: docx元素按序提取
下一篇: 2021.5.1项目进度报告
hustlearner
博客等级 码龄7年 11粉丝 45原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值