如何使用 MySQL 和 PHP 比较一组数字并获得最相关的结果?

2024-02-05

考虑一下:



set A: 1 2 3 4
set B:     3 4 5 6
set C:       4 5 6 7
set D: 1
  

我想将 D 与其余的进行比较,并得出一组最相关的数字。 结果应按以下顺序排列:4(因为 D 与 A 有公共数,4 在 A 中,也在 B 和 C 中)、3(因为 D 与 A 有公共数,3 在 A 和 B 中), 2(因为 D 与 A 有一个共同的数字,并且 2 也在 A 中),然后是 5、6、7。

在 PHP/MySQL 中是否有一些算法可以有效地做到这一点?我不想重新发明轮子,而且数据库最终会有大量的集合。


一个例子并不能构成完整的规范。例如,如果集合的集合还包括,您的答案会有什么不同

set E: 1 2 3
set F: 1   3

这将使 3 成为与 具有非空交集的集合中最常出现的值D?所以这是我的假设:

给定一个目标集(D在你原来的例子中):

  1. “重叠集”(与目标集有非空交集的集)中的值比不在这些重叠集中的值更相关。
  2. 在陈述1的约束下,相关性由出现频率决定。

在你原来的例子中,A重叠于D,因此全域 {1, 2, 3, 4, 5, 6, 7} 被划分为重叠的 {1, 2, 3, 4} 和非重叠的 {5, 6, 7}。值频率为 {1:2、2:1、3:2、4:3、5:2、6:2、7:1}。结合这些事实给出重叠频率 {1:2, 2:1, 3:2, 4:3} 和非重叠频率 {5:2, 6:2, 7:1},从而产生顺序 4, 3, 1、2,然后是 5、6、7。(我注意到您没有为 1 分配相关性。如果有意的话,这可能是从最终排序中删除目标集值的最后一步。)

在我调整后的示例中,频率变为 {1:4, 2:3, 3:4, 4:3, 5:2, 6:2, 7:1}。这给出了重叠频率 {1:4, 2:3, 3:4, 4:3} 和非重叠频率 {5:2, 6:2, 7:1},从而产生顺序 1, 3, 2, 4 随后是 5、6、7。

该算法的伪代码是:

  1. 初始化overlapping and universe为空集并且frequency成为一个空哈希。

  2. 对于每组s在集合的集合中(除了t,目标集):

    2.1.放universe到联盟s and universe

    2.2. If s与相交t至少有一个元素:

    2.2.1. Set `overlapping` to the union of `overlapping` and `s`
    

    2.3.对于每个元素e in s:

    2.3.1. If 'e' is a key in `frequency`
    
        2.3.1.1. Then increase the value (count) for `e` in `frequency` by 1
        2.3.1.2. Else initialize the value (count) for `e` in `frequency` to 1
    
  3. Set nonOverlapping的差异universe and overlapping

  4. 对 的元素进行排序universe通过他们的价值观frequency作为结果的第一部分。

  5. 将以下元素附加到结果中nonOverlapping,也按它们的值排序frequency.

(如果您确实打算使用以下元素t为了被消除,我会在 4 中将其作为后处理步骤。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 MySQL 和 PHP 比较一组数字并获得最相关的结果? 的相关文章

  • Mysql乘法查询

    我有一个名为 产品 的表 其中包含一个名为 价格 的字段 我只想将每种产品的价格加倍 请您帮我提供一条可以在 PHP myAdmin 中运行的 SQL 语句 update products set price price 2
  • 如何使用 CodeIgniter 计算 MySQL 中给定行之前的行数?

    简单来说 如何计算某一行之前有多少行 我使用的是增量 ID 但行是随机删除的 因此仅检查 ID 是行不通的 比如说 如果我有 30 行 并且我根据名称 或任何实际内容 选择了一行 那么在该行之前有多少行 它可以是 16 1 12 或任何值
  • PHP APC 潜在的缓存猛击避免了密钥

    我在尝试使用时收到此错误apc store 我用谷歌搜索了一下 发现这是APC定时炸弹错误并看到了一些建议添加的修复apc slam defense Off 到 php ini 我需要知道这是否是由于编程错误而发生的 如果是 如何修复它 这
  • “致命错误:调用未定义的函数 socket_create()”,即使在 php.ini 中启用

    我有一个奇怪的 PHP 问题 我在 Windows 7 的 IIS 上运行 PHP 5 当我在 PHP 文件中调用 socket create 时 如下所示 sock socket create AF INET SOCK DGRAM get
  • 从 PHP 启动交互式 SSH bash 会话

    我正在使用 PHP 编写常见服务器管理任务的快捷方式 我正在使用deployer org 但这应该不重要 我想添加一个任务 用于在通过 SSH 连接到服务器后启动交互式 bash 提示符 例如 您将运行 dep ssh 其中 dep 是一个
  • 处理表单的最佳实践

    我想知道处理表单处理的最佳实践是什么 就我而言 我做了类似的事情 if the user hasn t submited the form 显示表格 else if there are form errors 显示错误 再次显示表格 els
  • 小写表名错误

    我正在尝试设置lower case table name价值2 因为它是 Windows 服务器 但是当我启动 MySQL Workbench 并连接到我的服务器时 出现以下错误 服务器所在的系统不能正确支持所选的lower case ta
  • PHP/Apache 中的输出缓冲块如何工作?

    假设我将随机数据从 PHP 回显到浏览器 随机数据总量约为 XGb 回显以 YKb 块的形式完成 不使用 ob start PHP 和 Apache 缓冲区已满后 echo 调用是否会阻塞 客户端无法以与生成数据相同的速度使用数据 如果是
  • 理解 Haskell 中的矩阵转置函数

    这个矩阵转置函数有效 但我试图理解它的逐步执行 但我不明白 transpose a gt a transpose transpose x map head x transpose map tail x with transpose 1 2
  • Jquery ui 自动完成多个输入字段和 ajax 结果

    我正在尝试做其他几个人在堆栈上已经完成的事情 我已经尝试了所有可用的示例 但似乎无法使其工作 我已经复制了工作示例并反映了与我的情况相匹配的更改 但仍然没有 我使用的 HTML 看起来像这样 tr td a span class icon
  • 无法从外部 bash 脚本正确设置 MySQL 密码

    我有两个脚本 主要的一个脚本执行一些不同的操作并调用第二个脚本 第二个脚本安装 MySQL 从我的主脚本中我做了这样的事情 read p Set the password for the database min 4 characters
  • 我们可以在 Mysql 查询中使用 PHP 函数 strtotime [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有以下 MySQL 语法 这给了我一个错误 我知道你不能直接比较日期变量 所以我使用strtotime创建 Unix 时间戳来比较日
  • 我被击败了 我只是想开发自己的画廊 但一开始我就失败了 在 a 中显示图像作为背景 div 我已经把我的代码颠倒了 搜索了网络 搜索了 stackoverflow 尽管我无法解决问题 这是我的代码 HTML PHP div class im
  • PHP - 使用大量参数和默认值初始化对象的最佳方法

    我正在设计一个类 它定义一个高度复杂的对象 其中包含大量 50 大部分可选参数 其中许多参数都有默认值 例如 type foo width 300 interactive false 我试图确定设置构造函数和实例 类变量的最佳方法 以便能够
  • Docker 应用程序更新后无法连接到数据库

    在我的公司 我有一个旧的 Symfony 应用程序在 Docker 容器中运行 该应用程序连接到一个 SQL 数据库 该数据库也在 Docker 容器内运行 该图像是使用 php 7 2 apache stretch 构建的 但该版本已不再
  • 警告:sqlsrv_num_rows() 期望参数 1 为资源,给定布尔值[重复]

    这个问题在这里已经有答案了 出现此警告的原因有很多 但是 我认为我的问题是该表APPT为空 并且不包含任何内容row与t schedule id 我阅读了可能已经有答案的每个问题 并且所有答案都说明了同样的事情 您的 SQL 查询未成功并且
  • 是否有一种仅使用极坐标来查找附近点的算法?

    假设我有一个点向量作为极坐标 假设其中一个点充当探针 我想找到一定距离内的所有其他点 是否有一种算法可以在不将它们转换为笛卡尔形式的情况下执行此操作 您正在寻找极坐标的距离 你可以在这里找到公式link http math ucsd edu
  • 为什么呼叫会话不起作用? (代码点火器 3)

    我的配置是这样的 config sess driver database select database driver config sess save path ci sessions name of the mysql table co
  • 获取 png 图像的像素的 alpha 值?

    我正在使用以下代码 img imagecreatefrompng image png col imagecolorat img x y alpha col gt gt 24 0x7F 但 alpha 值始终为 127 即使像素位于 x y
  • PHP/regex:如何获取HTML标签的字符串值?

    我需要有关正则表达式的帮助或preg match http php net preg match因为我对这些还没有那么丰富的经验 所以这就是我的问题 我需要获取值 get me 但我认为我的函数有错误 html 标签的数量是动态的 它可以包

随机推荐

  • Firefox 4中的Greasemonkey脚本,想更改网页上的一行代码

    好吧 我会尽量让这件事变得尽可能简单 但不会太含糊 我想更改网页上的一行代码 以防止出现预览窗格 原始代码行 div class previewpane 我想将上面的行替换为 div class previewpane previewpan
  • 文件加密与内容加密不同吗

    加密文件和加密文件内容之间有什么区别吗 如果是这样 两者该如何做 文件加密是从外部加密整个文件 例如通过在 Windows XP 资源管理器中右键单击 内容加密通常被用作文件加密的同义词 但两者是不同的 内容加密是指对文件的内容进行加密 或
  • Pandas 合并错误:MemoryError

    Problem 我正在尝试将两个相对较小的数据集放在一起 但合并会引发MemoryError 我有两个国家贸易数据汇总数据集 我试图将其合并到关键年份和国家 地区 因此需要对数据进行特殊设置 不幸的是 这使得使用concat正如这个问题的答
  • 理解非齐次 numpy 数组

    我最近开始使用 numpy 并注意到一件奇怪的事情 import numpy as np a np array 1 2 3 4 5 9 8 print a shape shape print a 1 0 在这种情况下 形状是2L 但是 如果
  • 从 awk 调用 python 脚本

    大多数解决方案都从 python 调用 awk 但我想反过来做 我有一个从文件中提取信息的 python 脚本 然而 所述文件名在 awk 脚本的列中引用 如何向 python 传递参数 s20s 文件名并从标准输出获取输入 我想将输出添加
  • 填充嵌入的 UITableViewController

    我有一个使用导航控制器的应用程序 在其中一个视图中 我有一个视图容器 其中嵌入了使用静态单元格的 UITableViewController 我需要使用从上一个视图传入的数据来填充此表视图控制器的标签 流程如下 View1 gt segue
  • 用整数哈希替换字符串名称有哪些好方法

    通常 数据驱动设计中的实体和组件或游戏代码的其他部分都会有名称 如果您想准确地找出正在处理的对象 则需要检查这些名称 void Player Interact Entity myEntity if myEntity gt isNearEno
  • formGroup 需要一个 FormGroup 实例。请传一份

    情况 我正在尝试在我的 Ionic 2 应用程序中制作一个非常简单的登录表单 无论我尝试什么 我都会不断收到此错误 formGroup expects a FormGroup instance Please pass one in 代码 页
  • 使用命令行参数从 python 制作 exe 文件

    我想从使用命令行参数 argv 的 python 脚本创建一个 exe据我所知 py2exe 不支持命令行参数 我能做些什么 编辑 我使用的是 GUI2Exe 工具 所以我错过了控制台标志 但接受的答案是完全正确的 setup consol
  • PHP 正斜杠匹配

    PHP 中如何检查某个字符串是否包含正斜杠 检查是否出现strpos http php net manual en function strpos php if strpos string FALSE Found 以整数形式返回位置 如果未
  • 如何读取 git-ls-tree 输出的模式字段

    git ls tree fb3a8bdd0ce 100644 blob 63c918c667fa005ff12ad89437f2fdc80926e21c gitignore 100644 blob 5529b198e8d14decbe4ad
  • CSS 中类的通配符 *

    我有这些我正在设计的 div tocolor 但我还需要唯一标识符 1 2 3 4 等 因此我将其添加为另一个类tocolor 1 div class tocolor tocolor 1 tocolor 1 div div class to
  • 使用 C++ WinAPI 在 Windows 10 上设置亮度

    我正在尝试在 Windows 10 计算机上设置亮度 显示器好像不支持setMonitorBrightness and setDeviceGammaRamp改变伽玛 白点等 所以我尽量不使用它 我正在尝试使用它来使其工作IOCTL VIDE
  • SendGrid API 动态 - 无法取消订阅工作

    我刚刚使用 sendgrid 设置了一封动态电子邮件 并使用 API 根据我的客户数据填写它 除了取消订阅部分之外 我已经完成了所有工作 我的电子邮件底部有一个取消订阅块 在代码编辑器中 代码如下所示 div class module st
  • Spark Streaming 无法从单个文件读取流数据

    我正在尝试从使用 Spark 流 API textFileStream 连续附加的文本文件中读取流数据 但无法使用 Spark Streaming 读取连续数据 Spark中如何实现呢 这是预期的行为 为了基于文件的源 https spar
  • 如何检索每个轴上的 3D 旋转角度?

    我有一个 Model3DGroup 它使用应用于对象的 Transform 属性的 AxisAngleRotation3D 围绕任何 x y z 轴旋转 问题是我无法控制网格上应用的各种旋转 我需要在每个渲染循环的 x y z 轴上显示网格
  • 在chrome新版本上使用window.open显示base64 pdf数据

    我正在使用以下代码在新窗口中以 pdf 形式打开 Base64 数据 var pdf response data base64 var doc document createElement a doc href data applicati
  • Scala 中单例对象的解释

    我得到的编码是 您基本上提供了一个 object SomeClass 和一个 class SomeClass 并且伴随类是类声明 而对象是单例 http en wikipedia org wiki Singleton pattern 您无法
  • OpenCV。如何将点与矩阵相乘 (CvMat)

    我有用于旋转的矩阵 CvMat rot mat cvCreateMat 2 3 CV 32FC1 cv2DRotationMatrix center angle scale rot mat 该矩阵用于图像操作 cvWarpAffine ro
  • 如何使用 MySQL 和 PHP 比较一组数字并获得最相关的结果?

    考虑一下 set A 1 2 3 4 set B 3 4 5 6 set C 4 5 6 7 set D 1 我想将 D 与其余的进行比较 并得出一组最相关的数字 结果应按以下顺序排列 4 因为 D 与 A 有公共数 4 在 A 中 也在