当前位置: 高中信息技术 / 综合题
  • 1. (2023高二上·余姚月考) 大部分社交软件都有好友推荐的功能,当用户A和用户B的共同好友数量超过阀值p时,由系统向用户A推荐用户B。其中共同好友判定方法为:用户A和用户B不是好友,用户C分别是用户A和用户B的好友,则共同好友数量加1。编写Python程序,实现好友推荐功能。运行程序,首先从文件中读取用户id及好友列表后,处理后显示用户之间的关系;再输入推荐目标用户id和阈值p;最后显示向目标用户推荐的好友列表。

    1. (1) 根据如图所示数据,若输入推荐目标用户id为“1”,输入阈值为“4”,则推荐好友为:
    2. (2) 主程序,读取“数据.txt”文件,进行处理后显示用户关系二维表,再输入推荐目标用户id和阈值p,显示向目标用户推荐的好友列表,请在划线处填入合适的代码。

      n= 10

      sj= ];zj= [];j= 0]

      #按行读取"数据.txt"文件,每次读一行文字存入字符串变量line 中

      f=open("数据txt")

      line=f.readline( )     #读取标题行

      line= =f.readline( )

      while line:

          sj.append(line.split(" "))     #将字符串以""为间隔分割成多个字符串组成的列表

          line=f.readline( )   #读取下一行

      zj = zhengli(sj)

      #显示各用户之间关系二维表,代码略

      #输入推荐目标用户id和阈值p,显示向目标用户推荐的好友列表

      id = int(input("请输入推荐目标用户id: "))

      p = int(input("请输入阈值p: "))

         #调用函数进行好友推荐

      if len(j) != 0:

          t=0

          print("推荐好友为:",end = "")

          while t < len(tj):

              print(j[t, end ="")

              t=t+ 1

      else:

          print("没有推荐好友")

    3. (3) 编写整理数据函数zhengli,根据好友列表,生产关系二维表,请在划线处填入合适的代码。

      def zhengli(sj):

          r= [[0 for i in range(n)]for j in range(n)]

          for i in range(n): .

              for j in sj [i][l:]:

                  r[i][nt(j)-1]= 1

                 

          return r

    4. (4) 编写函数fenxi,根据输入推荐目标用户id和阈值p,显示向目标用户推荐的好友列表,请在划线处填入合适的代码。

      def fenxi(id,p):

          res =[]

          for i in range(n):

              c=0

              for j in range(n):

                  if i!=id-1 and j!= id-1 and i!=j:

                      if

                          c+= 1

              if

                  res.append(i+1)

      return res

微信扫码预览、分享更方便