临潮听海 2021-08-05 14:01 采纳率: 100%
浏览 58
已结题

我想用python编写一个检索程序

假设
出现情况1有以下【A,B,C,D,E】可能性
出现情况2有以下【A,B,C,''1'',''2'',''3''】可能性
出现情况3有以下【A,C,''3'',''4'',''5''】可能性
出现情况4...
出现情况100有以下【AA,BB,CC,DD,''11'',''33''】可能性

#出现不同情况时,将各种情况的可能性相加,并推算出得分靠前的几种可能性。
比如情况1、情况2、情况3同时出现
那么可能性就是【A3,B2,C*2,''3''*2,C,D,E,''1'',''2''】
可能性最多的是A,B,C,''3''
再根据变量选择
IF A and B 那么推导出 结果1
IF A and C 那么推导出 结果2
IF A and B and C 那么推导出 结果3
依次类推

最后根据结果检索数据库,根据结果1检索出解决方案1
结果2检索出解决方案2
依次类推

我想编写出一个带录入和检索界面的软件。录入界面录入情况,可能性,结果,解决方案。并且前面四个因素关联性一并录入。

我也想自己学一学python不知道哪个库可以完成,我应该从哪入手学习。

并且我想写一个反推的检索结构,就是当输入解决方案时,输出可能的情况。

  • 写回答

3条回答 默认 最新

  • CSDN专家-文盲老顾 2021-08-05 18:24
    关注
    
    group = [['a','b','c','d','e'],['a','b','c','1','2','3'],['a','c','3','4','5']]
    
    def groupRank(group,arr):
        a = []
        for i in arr:
            a += group[i]
        b = set(a)
        c = {n:a.count(n) for n in b}
        d = {n:[] for n in set(c.values())}
        for i in c:
            d[c[i]].append(i)
        return d
    
    print(groupRank(group, [0,1,2]))
    

    我猜你的意思是,各种组合的可能性下,可能性最高的几个,使用集合和列表统计即可得到各个可能性组合后的可能性,return 的数据,你可以自行调整,只取可能性最高的返回应该就是你要的结果了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月14日
  • 已采纳回答 8月6日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的