程序代碼進(jìn)行知網(wǎng)查重的方法
作者:畢業(yè)通檢測 發(fā)表時(shí)間:2020-09-14 14:31:03 瀏覽次數(shù):587
?我個(gè)人為我們課程DIY過一個(gè)知網(wǎng)查重的軟件工具,是基于數(shù)據(jù)流分析的,效果還不錯(cuò),反正修改變量名,提取函數(shù)這些小伎倆是完全無用的,甚至可以做到一定的跨語言查重(只把c#代碼copy到j(luò)ava里,然后改一改跑起來是會(huì)被發(fā)現(xiàn)的)。說明程序代碼也會(huì)進(jìn)行對(duì)比查重算抄襲重復(fù)率。下面具體說說程序代碼進(jìn)行知網(wǎng)查重的方法,具體如下:
以c為例,具體流程大概是,先調(diào)用預(yù)處理器把注釋干掉,把macro展開,因include <>而弄進(jìn)來的那波標(biāo)準(zhǔn)庫頭文件特殊標(biāo)記一下,然后建立CFG(control flow graph)進(jìn)行知網(wǎng)查重。因?yàn)镃FG關(guān)心的是變量的值會(huì)怎么傳播,所以在中間插入一大堆無副作用的語句是不會(huì)有任何效果的,把變量換個(gè)名或挪個(gè)位置(比如加多一層block)也沒啥卵用。
c++的話就會(huì)麻煩很多,畢竟在c++里就算a + b這么個(gè)簡單語句,因?yàn)閛perator+可以重載,所以指不定執(zhí)行完這個(gè)語句就可以把地球都炸了呢,而且這個(gè)重載在不同namespace里還可能不同,比如namespace A是用核彈炸地球,namespace B是對(duì)整個(gè)地球播一段愛的供養(yǎng)神馬的……在c++里建立CFG會(huì)是個(gè)噩夢……程序代碼進(jìn)行知網(wǎng)查重的方法比較復(fù)雜吧!!
不過說起來我們的課程比較特殊,因?yàn)樽鳂I(yè)用的是類ACM的提交系統(tǒng),所以對(duì)運(yùn)行環(huán)境有比較嚴(yán)格的限制,這保證了程序代碼知網(wǎng)查重查重的準(zhǔn)確率。如果是完全開放性的程序代碼知網(wǎng)查重(即對(duì)語言和第三方lib等等都不做限制的話)恐怕會(huì)很困難。
=== 舉個(gè)例子 ===
以下是前幾天剛剛檢測到的抄襲代碼片段……下面兩段java代碼被檢測出有高度匹配(右圖里getARGBData函數(shù)只是把二維數(shù)組給復(fù)制4份湊成一個(gè)三維數(shù)組而已,沒干其他事)……
另外一點(diǎn),為了減少漏網(wǎng)之魚,知網(wǎng)查重時(shí)一般都會(huì)用低閾值初篩,再人工介入復(fù)核。此外建立回溯機(jī)制,比如如果某人現(xiàn)場考試的成績和作業(yè)排名差異較大的話,會(huì)觸發(fā)重查,專門為他調(diào)低閾值重查一遍+人工復(fù)核。不過正因?yàn)橛腥斯?fù)核,所以思路相同一般是不至于誤判的,畢竟只要代碼行數(shù)一多,思路再相同,代碼風(fēng)格上也會(huì)有很大差異。
最新查重新聞
畢業(yè)論文查重 論文查重新聞 論文查重資訊 學(xué)位論文查重 論文檢測資訊 畢業(yè)論文查重資訊 論文檢測新聞 論文查重中心 論文檢測新聞本站聲明:網(wǎng)站內(nèi)容來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系我們,我們將及時(shí)刪除處理。
論文檢測相關(guān)資訊
- PaperFree_論文查重出現(xiàn)結(jié)果不一致的情況都有哪些原因?
- PaperFree_論文寫作初期能夠自己進(jìn)行論文查重嗎?
- PaperFree_畢業(yè)論文題目會(huì)不會(huì)被查重系統(tǒng)檢測?
- PaperFree_怎樣去解決論文查重帶來的困擾?
- PaperFree_高校進(jìn)行論文查重檢測的目的是什么?
- PaperFree_降低論文查重率可以運(yùn)用哪些修改原則?
- 論文定稿降重修改要注意的幾點(diǎn)是什么?
- 為什么同一論文的相似率兩次檢測卻不同?
- 論文重復(fù)率是不是降到越低越好?
- 本科論文論文查重率需要達(dá)到多少?
學(xué)術(shù)不端查重入口









