| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 813 人关注过本帖
标题:关于字符串相似度问题
只看楼主 加入收藏
dbf永动机
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:21
注 册:2022-8-30
结帖率:85.71%
收藏
已结贴  问题点数:50 回复次数:15 
关于字符串相似度问题
现有一个dbf表在附件:
cs.rar (3.43 KB)


姓名xm,考场kc,答案ans 三列

答案是由1248码组成的,1=A,2=B,4=C,4=8,还有一些多选题用的是符号代替,这些都不重要,只是为了介绍一下。

现在我想找到的是雷同答案的考生,但是如果仅仅用 ans,count(*)计数的话,只是很简单的找到完全相同的ans串,如果考生作弊的话应该不会这么傻的完全抄的和别人一模一样,ans里面一共有23个字符,假设有3个或以内的字符答案不一样,剩下的都一样,就算雷同,那么如何找打这样的雷同考生呢?

cs表中现在有两个人一模一样的答案,还有两个考生的答案相似,大家可以试一试。

以上是对所有考生的查询,但是考试过程中是有考场的概念的,如果不在一个考场的考生,那么即便答案一样或相似,也不算雷同,只要相同考场中的雷同答案的考生,何如查询呢?

以上两个问题,请大家分别给出查询代码。
搜索更多相关主题的帖子: 相同 字符 答案 查询 字符串 
2023-09-16 09:27
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:351
专家分:330
注 册:2013-10-4
收藏
得分:9 
对学校业务不熟。楼主,这样吧,你先公布你反复思考之后的答案,然后,咱老狐狸们再帮你改。

2023-09-16 11:59
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1089
专家分:2682
注 册:2015-12-30
收藏
得分:9 
很像大学论文查重
2023-09-16 16:06
dbf永动机
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:21
注 册:2022-8-30
收藏
得分:0 
回复 2楼 cssnet
我现在还没有思路
2023-09-16 17:49
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1730
专家分:3324
注 册:2012-2-29
收藏
得分:9 
回复 楼主 dbf永动机
我的笨办法的思路是:同考场内,两两比较答案中相同位置相同答案字符个数的多少来判断,可以使用两个循环来解决:一个是循环记录,一个是循环比较记录中的答案字符,这个运算量应该不小哦。

[此贴子已经被作者于2023-9-17 07:46编辑过]

2023-09-17 07:42
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:9 
1、你的答案数据结构是什么样的?
2、如果人工判断,什么样的叫有作弊嫌疑?

dBase有人接盘了。
2023-09-17 07:52
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:351
专家分:330
注 册:2013-10-4
收藏
得分:0 
以下是引用dbf永动机在2023-9-16 09:27:20的发言:

……只是为了介绍一下。
……大家可以试一试。
……以上两个问题,请大家分别给出查询代码。


楼主如此表述,感觉上,就好像是讲台上的老师,居高临下在给台下的学生们出考题。
潜台词就好像是:
“老师我已有了标准答案,同学们且试一试吧,看能否答对?”
呵呵。
2023-09-17 09:34
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:9 
永动机老师,我的作业如下
程序代码:
Close Databases 
Use cs
Select kc from cs group by kc into array aGrp
Select xm, kc, Cast('' as V(50)) as suspect from cs where .f. into cursor result Readwrite

For m.ii = 1 to Alen(m.aGrp)
    Select cs
    Scan all for kc == m.aGrp[m.ii]
        Scatter name oRec
        m.oRec.ans = 0h + m.oRec.ans
        Select xm, Bitxor(m.oRec.ans, 0h+ans) as op, Cast(0 as I) as diff ;
            from cs where (kc == m.oRec.kc) and !(xm == m.oREc.xm) ;
            into cursor temp Readwrite
        Update temp set diff = Len(op) - Occurs(0h00, op)
        Select xm, diff from temp where diff <= 3 order by diff into cursor temp
        If Reccount('temp') > 0
            m.cc = ''
            Scan all
                m.cc = m.cc + Textmerge(',<<Alltrim(xm)>>(不同:<<diff>>)')
            EndScan
            insert into result (xm, kc, suspect) Values (m.oRec.xm, m.oRec.kc, Substr(m.cc,3))
        EndIf
    EndScan
EndFor

Use in temp
Use in cs
Select result
Locate
Browse


[此贴子已经被作者于2023-9-17 10:15编辑过]


这家伙很懒,啥也没留下
2023-09-17 10:14
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1730
专家分:3324
注 册:2012-2-29
收藏
得分:0 
回复 8楼 csyx
2023-09-18 05:36
z12689
Rank: 2
等 级:论坛游民
帖 子:49
专家分:83
注 册:2021-4-15
收藏
得分:9 
回复 8楼 csyx
厉害  
2023-09-18 10:18
快速回复:关于字符串相似度问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023765 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved