Epic 面试

来源:互联网 发布:磁盘元数据测试0x32 编辑:程序博客网 时间:2024/06/10 00:58

1、m students, n courses, 如果两个学生有重复课程就表示similar,重复的越多越similar,问如何根据similar进行排序

A:建hashtable,key是学生名字,value是他选的课,选的课可以存为二进制数(如{“xx”:010010})。然后两个学生的similarity就是其value的余弦相似性(Cosine similarity)。


def Cosine_Similarity(A,B):    numerator, denominator1, denominator2 = 0, 0, 0    for item in range(len(A)):        numerator += A[item] * B[item]        denominator1 += A[item] ** 2        denominator2 += B[item] ** 2    similarity = numerator / ((denominator1**0.5) * (denominator2**0.5))    return (similarity)


0 0
原创粉丝点击