计算“凯文·培根”数字

2023-11-22

我一直在玩弄一些东西并想到了试图弄清楚的想法凯文·培根数字。我有一个网站的数据,为此我们可以考虑将其视为社交网络。让我们假设它是 Facebook(为了简化讨论)。我有一些人,我有他们的朋友名单,所以我有他们之间的联系。我如何计算一个人到另一个人的距离(基本上是凯文·培根数)?

我最好的想法是双向搜索,有深度限制(以限制计算复杂性并避免人们在图中根本无法连接的问题),但我意识到这是相当暴力的。

制作一些小子图(相当于 Facebook 上的群组),计算它们之间的最短距离(也许提前),然后尝试使用这些子图来查找链接是否会更好?虽然这需要预先计算,但它可以搜索更少的节点(节点可以是组而不是个体,从而使图小得多)。但这仍然是双向搜索。

我还可以预先计算一个人连接到的人数,首先在节点中搜索“受欢迎”的人,因为他们最有机会连接到给定的目的地个人。我意识到这将是速度与可能的最短路径的权衡。我想我还想使用深度优先搜索,而不是我计划在其他情况下使用的广度优先搜索。

有人能想出一种更简单/更快的方法吗?我希望能够找到两个人之间的最短长度,因此这并不像总是具有相同的终点那么容易(例如在凯文·培根问题中)。

我意识到存在诸如我可以获得 200 人的连锁之类的问题,但这可以解决我愿意搜索的深度的限制。


这是一个标准最短路径问题。有很多解决方案,包括迪杰斯特拉算法 and 贝尔曼-福特。您可能特别有兴趣查看A*算法并看看它如何使用相对于任何特定节点度数的倒数的成本函数来执行。这个想法是首先访问更受欢迎的节点(具有更高程度的节点)。

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

计算“凯文·培根”数字 的相关文章

  • Google 文档如何处理编辑冲突?

    我一直在尝试编写自己的 Javascript 编辑器 其功能类似于 Google Docs 允许多人同时使用 我不明白一件事 假设用户 A 和用户 B 直接相互连接 网络延迟为 10 毫秒 我假设编辑器使用 diff 系统 据我了解 Doc
  • 如何在 JavaScript 中构建树模式匹配算法?

    好吧 这是一个有点复杂的问题 但是 tl dr 基本上是如何使用 模式树 解析 实际树 如何检查特定的树实例是否与特定的模式树匹配 首先 我们有我们的结构模式树 模式树通常可以包含以下类型的节点 sequence节点 匹配一系列项目 零个或
  • 素数生成器算法

    我一直在尝试解决素数生成算法的SPOJ问题 这是问题 彼得想为他的密码系统生成一些素数 帮助 他 你的任务是生成两个给定之间的所有素数 数字 Input 输入以单行中测试用例的数量 t 开始 t Output 对于每个测试用例 打印所有素数
  • 从原点开始在离散 2D 网格上迭代向外螺旋的算法

    例如 这是预期螺旋的形状 以及迭代的每个步骤 y 16 15 14 13 12 17 4 3 2 11 18 5 0 1 10 x 19 6 7 8 9 20 21 22 23 24 其中线条是 x 轴和 y 轴 以下是算法每次迭代 返回
  • 线段树java实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你知道 二进制 的良好实现吗线段树 http en wikipedia org wiki Segmen
  • 简单的排名算法

    我需要创建一个民意调查 按照项目的好坏顺序创建一个排名列表 我打算向每个用户展示两个项目 让他们选择一个他们认为更好的项目 然后多次重复这个过程 它有点类似于您在社交网络电影 我应该如何根据收到的答案对项目进行排名 看着那 这ELO国际象棋
  • 分而治之算法找到两个有序元素之间的最大差异

    给定一个整数数组 arr 找出任意两个元素之间的差异 使得较大的元素出现在 arr 中较小的数字之后 Max Difference Max arr x arr y x gt y 例子 如果数组是 2 3 10 6 4 8 1 7 那么返回值
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • Python 旅行商贪婪算法 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 因此 我为旅行推销员问题创建了一种排序 并按 x 坐标和 y 坐标进行排序 我正在尝试实施贪婪搜索 但无法做到 此外 每
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr
  • heapq.nlargest 的时间复杂度是多少?

    我在看演讲者说 获得t列表中最大的元素n元素可以在O t n 这怎么可能 我的理解是创建堆将是O n 但是复杂度是多少nlargest本身就是O n t or O t 实际的算法是什么 在这种情况下 说话者是错误的 实际成本是O n log
  • 重写修改后的 goto 语义的算法

    我有一大堆使用旧的自行设计的脚本语言编写的遗留代码 我们将它们编译 翻译成 javascript 该语言有条件跳转 跳转到标签 与普通 goto 语句的区别在于 不可能向后跳转 该语言中没有嵌套的 if 语句或循环 由于 javascrip
  • 如何光栅化旋转矩形(通过 setpixel 在 2d 中)

    我有四个 2d 顶点 A B C D 的旋转矩形 我需要在像素缓冲区中 有效地 光栅化 绘制它 使用 setpixel x y 颜色 怎么做 我正在尝试使用一些代码 例如 convertilg a b c d do up down left
  • 优化计算中使用的 # 个线程的算法

    我正在执行一个操作 我们将其称为CalculateSomeData CalculateSomeData 在连续的 代 中运行 编号为 1 x 整个运行中的代数由CalculateSomeData 的输入参数固定 并且是先验已知的 完成一次生
  • 使用什么算法来确定使系统达到“零”状态所需的最小操作数?

    这是一种更通用的问题 不是特定于语言的 有关要使用的想法和算法的更多信息 系统如下 它登记朋友群体之间的小额贷款 Alice and Bill要去吃午饭 比尔的卡坏了 所以爱丽丝支付了他的餐费 10 美元 第二天Bill and Charl
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 为什么 Dijkstra 算法使用减密钥?

    Dijkstra 教给我的算法如下 while pqueue is not empty distance node pqueue delete min if node has been visited continue else mark
  • 排序矩阵的选择算法

    这是谷歌面试问题 给定一个 N N 矩阵 所有行均已排序 所有列均已排序 找到矩阵的第 K 个最大元素 在 n 2 中执行它很简单 我们可以使用堆或合并排序 n lg n 对它进行排序 然后得到它 但是有没有更好的方法 比 n lg n 更
  • 当满足动态条件时退出递归函数

    使用来自的函数生成汉明距离 t 内的所有比特序列 https stackoverflow com questions 40813022 generate all sequences of bits within hamming distan
  • 实时战略战争游戏人工智能算法

    我正在设计一款实时策略战争游戏 其中 AI 将负责控制大型六边形地图上的大量单位 可能超过 1000 个 一个单位有许多行动点 可以用于移动 攻击敌方单位或各种特殊行动 例如建造新单位 例如 一辆拥有 5 个行动点的坦克可以花费 3 个行动

随机推荐

  • 如何在 JavaScript 中检查 XMLHttpRequest 对象是否支持 W3C 进度事件?

    有没有办法在 JavaScript 中检查是否XMLHttpRequest物体支撑W3C 进展事件 我的意思是这里如果设置onload onprogress onabort onerror等某些处理函数的属性将使这些函数调用这些事件 如所述
  • 在 perl6 语法中放松空白的最佳方法是什么?

    我想要一个在是否存在空格方面宽松的语法 我想匹配 this
  • 创建一个非常简单的链表

    我试图创建一个链接列表只是为了看看我是否可以 但我很难理解它 有谁有一个使用 C 非常简单地实现链表的示例吗 到目前为止我发现的所有例子都有点过头了 链表的核心是一堆链接在一起的节点 因此 您需要从一个简单的 Node 类开始 public
  • Makefile 始终运行目标

    我可能会错过这个 Makefile 中一些非常明显的东西 convert devel bar touch convert init devel foo echo init devel foo mkdir p devel touch deve
  • 读/写音频/视频文件的元数据

    我需要一些帮助来读取 写入音频 视频文件的元数据信息 我进行了很多搜索 但没有找到任何有用的东西 Taglib Sharp 是一个开源库 为读取 写入元数据提供帮助 使用标签库我可以编辑一些值 但不是全部 TagLib File video
  • 如何在 PHP 中显示取决于用户输入的长查询的 MySQL 错误? [复制]

    这个问题在这里已经有答案了 在 PHP 中 我尝试执行一个依赖于用户输入的长 MySQL 查询 但是 我的查询失败并显示以下消息 Query Failed 实际上 每当查询失败时 我都会打印此消息 但我很难查找此失败背后的原因 不幸的是 我
  • 来自存储在表中的值的 SQL 动态 SELECT 语句

    我已经研究了几天了 感觉自己在兜圈子 我有 SQL 的基本知识 但有很多地方我不明白 我有一个表 用于存储数据库中所有其他表的名称和字段 tblFields TableName FieldName BookmarkName Customer
  • 为什么除了没有捕获这个错误?

    我有一个程序可以模拟掷骰子并将它们与图表 一组字符串列表 中的值进行比较 我目前从 TEdit 获取值 如果该框为空 则会引发 EConvertError 该错误应该由我的 Try Except 语句捕获 但事实并非如此 想法和建议 下面的
  • 如何保护项目中的数据库配置文件? [复制]

    这个问题在这里已经有答案了 我已经创建了 php 文件来与数据库服务器建立连接 在这个文件中 我正在使用mysql connect 函数的参数为 我的数据库服务器的主机 用户名和密码 public class DatabaseConnect
  • 在网页上实时显示数据[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我不确定如何用最好的方式来表达它 但我正在寻找一种在网页可用时在网页上显示数据的方法 示例 在网页上显示 IRC 频道消息 当消息发送到 IRC 频
  • 生成正则表达式

    通常在我们的工作中我们会使用正则表达式capture or match运营 但是 可以使用正则表达式 至少手动 来生成与正则表达式匹配的合法句子 当然 有些正则表达式可以匹配无限长的句子 例如表达式 我有一个问题可以通过使用正则表达式句子生
  • IntelliJ:命令行太长。在 SBT 项目中缩短命令行...

    当我尝试运行我的应用程序时 IntelliJ 刚刚开始告诉我 命令行太长 缩短 my app 或应用程序默认配置的命令行 the my app是一个蓝色链接 可通往 编辑配置 窗口 自动选择并突出显示类路径缩短器的下拉列表 我选择了建议的选
  • Android:ListViews 和 CheckBoxes 的问题

    我有一个 ListView 在每个列表项中我有一些 TextView 和一个 CheckBox 当我检查复选框并且 onCheckedChangeListener 触发时 一切都会按预期工作 然而 一旦选中一个复选框 就会随机选中其他复选框
  • .Maui 静态 Web 资源构建问题

    严重性代码 说明 项目文件行抑制状态 未找到 obj Debug net6 0 android android x86 staticwebassets build json 处的错误清单文件 MauiApp3 C Program Files
  • 如何更改 seaborn 对图中绘图元素的 z 顺序

    这是一个片段 用于重现我的示例图像 import pandas as pd import numpy as np import seaborn as sns np random seed 42 df pd DataFrame np rand
  • Environment.UserName 返回应用程序池名称而不是用户名

    下面一行 Environment UserName 在 Visual Studio 的调试模式下 返回我需要的用户身份 然后 当我在 IIS 中设置站点并运行代码时 同一行返回该站点使用的应用程序池的名称 我怎样才能让它仍然返回用户名 尝试
  • 如何在 Spring Webflux / Reactor Netty Web 应用程序中执行阻塞调用

    在我的用例中 我有一个带有 Reactor Netty 的 Spring Webflux 微服务 我有以下依赖项 org springframework boot spring boot starter webflux 2 0 1 发布 o
  • CSS 样式 <音频>

    有没有一种方法可以设置时间线拇指 搜索者 的样式
  • 将代码跟踪到 PDF 或 PostScript 文件中

    有没有办法跟踪 PDF 的打开时间 也许通过将一些脚本嵌入到 pdf 本身中 我看到下面的问题 我想对于 javascript 来说答案是 否 但我想知道这是否可能 Google Analytics 跟踪代码插入 pdf 文件 PDF 标准
  • 计算“凯文·培根”数字

    我一直在玩弄一些东西并想到了试图弄清楚的想法凯文 培根数字 我有一个网站的数据 为此我们可以考虑将其视为社交网络 让我们假设它是 Facebook 为了简化讨论 我有一些人 我有他们的朋友名单 所以我有他们之间的联系 我如何计算一个人到另一