在 Mathematica 中以编程方式创建多元函数

2023-12-08

这是从讨论中分离出来的earlier问题。

假设我需要定义一个函数 f 来检查给定的图形标签是否是正确的着色。换句话说,我们为每个节点分配了一个整数,并且没有两个相邻节点得到相同的答案。例如,对于 {"Path",3},f[{1,2,3}] 返回 True,f[{1,1,2}] 返回 False。我将如何为任意图创建这样的函数?

以下内容基本上满足了我的需要,但会生成部分警告。

g[edges_] := Function @@ {{x}, And @@ (x[[First[#]]] != x[[Last[#]]] & /@ edges)}
f = g[GraphData[{"Path", 3}, "EdgeIndices"]];
f[{1, 2, 1}]==False

这是我经常遇到的一个玩具实例问题——我需要以编程方式创建一个多元函数 f,并最终得到以下任一结果:1) 部分警告 2) 推迟对 g 的求值,直到对 f 求值


这是一些东西。当其他事情都不起作用的时候,Hold和规则通常可以完成工作。我不确定它会产生正确的结果。您的图形着色问题,但希望能为您提供一个起点。我最终使用了Slot而不是命名变量,因为存在一些范围问题(也存在于我之前的建议中,x$ vs. x)当我使用一个命名变量时,我没有花时间尝试解决这个问题。

g[edges_] := 
 With[{ors = (Hold @@ edges) /. {a_, b_} :> #[[a]] == #[[b]]},
  Function[!ors] /. Hold -> Or
  ]

In[90]:= f = g[GraphData[{"Path", 3}, "EdgeIndices"]]
Out[90]= !(#1[[1]] == #1[[2]] || #1[[2]] == #1[[3]]) &

In[91]:= f[{1, 2, 3}]
Out[91]= True

In[92]:= f[{1, 1, 2}]
Out[92]= False

我觉得它缺乏典型的 Mathematica 优雅,但它确实有效。如果我受到更美丽的东西的启发,我会更新。

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

在 Mathematica 中以编程方式创建多元函数 的相关文章

随机推荐

  • 我可以在打字稿中声明静态私有函数吗?

    我有以下代码 module Dialog export class Modal static createAccessModal link Link createModal link static createAdminModal link
  • 将 android:layoutAnimation 添加到 LinearLayout 会导致 FC

    我在 menu xml 中有以下 XML 它是一个我需要设置动画的 LinearLayout 因此我使用layoutAnimation 属性 如果没有这个属性 布局会完美地显示 但是设置了这个属性后 我会得到一个令人讨厌的强制关闭 我不明白
  • 您的 BDD 规范是否应该与 UI 测试分开?

    昨天我参加了一场精彩的演讲戈伊科 阿季奇关于 BDD 我可能错过了他说的一两件事 所以这里有一个问题希望能为我澄清一些事情 通常 当您在网上看到 BDD 示例时 它们会在 UI 中包含步骤 在小黄瓜语言中 您经常可以看到类似以下内容 Sce
  • Android Web 视图中的所见即所得

    我一直在尝试从我的应用程序内部向我的用户提供所见即所得的 HTML 编辑器 它不必是花哨的所见即所得 我只需要基本功能 如粗体 斜体 下划线 图像 链接和一些基本格式 字体大小 颜色 对齐方式 那应该足够了 完美的解决方案是一个开源库 但我
  • Angular 4:API调用后更新模板变量[重复]

    这个问题在这里已经有答案了 我有一个组件指令 用于显示带有一些信息的 div 该组件称为站点组件并包含在页面中 该人的主要行为站点组件很好 除了这个 我有一个对后端的 API 调用 我在其中返回一些数据 后端调用执行良好 我收到了信息 但变
  • 在内联汇编中使用双精度数字(GCC、IA-32)

    我刚刚开始在计算机科学课上学习汇编 并且我有一项作业是使用指定的舍入模式对浮点值进行舍入 我尝试使用它来实现fstcw fldcw and frndint 我修改舍入控制位 对数字进行舍入 然后恢复以前的控制位 分配的要求 目前突出的问题是
  • 为什么协程停止工作/执行

    我有一个 3 秒倒计时器 当游戏取消暂停时会激活该计时器 几天前我还可以正常工作 但现在它不再工作了 它在号码 3 上被阻止 这是代码 IEnumerator Timer Time timeScale 0 objectWithGSScrip
  • 如何有效地使用绑定框架

    我已经使用绑定框架有一段时间了 我想知道您如何处理这种情况 你有一份报纸 它有一些属性 比如 字符串 标题 布尔值 已发布 日期 出版日期 在您看来 您有一份报纸列表 可以同时编辑所有报纸 这意味着您可以在单个请求中更改所有报纸的标题或所有
  • 实体框架在哪里存储属性名称与其在 SQL 中选择的列之间的映射?

    我正在尝试使用 ObjectQuery 的 ToTraceString 在 EF 4 3 上构建一些自定义扩展 以从 LINQ 代码生成原始 SQL 我注意到 虽然在某些情况下 SQL 中的列名称与查询元素类型的属性名称相匹配 但在其他情况
  • 为什么代码 this 指向 window 对象?

    我的代码是 var length 20 function fn console log this length var o length 10 e function fn fn arguments 0 o e fn 输出是20 1 谁能告诉
  • 所有浏览器都会忽略无名输入字段吗?

    如果没有指定 name 属性 是否可以保证浏览器不会发送输入元素 例如 我们可以假设 POST 下面的表单不会发送信用卡号吗
  • NullPointerException:重写派生类中基类的构造函数调用方法

    我有这个代码片段 class Base public Base method void method System out println In Base class Derived extends Base private String
  • 用于处理多个未知回调的 JavaScript 函数

    我有一个场景 我想将 2 个或更多函数 作为参数 发送到处理函数中 并让该处理函数执行每个传递的函数作为前面函数的回调函数 这是我试图编写的函数的一般概念 function functionChain MAKE SURE WE HAVE A
  • 为什么此 DataAdapter 不将行插入数据库?

    因此 我遇到了一种情况 我使用 SqlDataAdapter 将行插入 SQL Server 2014 数据库中的表中 数据来源是 Excel 电子表格 当使用几个 For 循环以及 Columns Add 和 Rows Add 填充 Da
  • PHP Amazon S3通过URL访问私有文件

    我在用着AWS PHPsdk 将图像保存在 S3 上 文件以私密方式保存 然后 我在 Web 应用程序中使用 S3 文件 url 显示图像缩略图 但由于文件是私有的 因此图像显示为损坏 当用户单击文件名时 会打开一个模式以显示较大尺寸的文件
  • kivy自定义小部件绑定错误

    我正在尝试制作一个小俄罗斯方块游戏 用于用 kivy 学习 python 我正在尝试创建一个大小为 20 20 的自定义小部件 当我将其添加到浮动布局并运行以下代码时 我收到以下错误 Error File D OS Files worksp
  • 是否可以动态定义 _Generic 的关联列表?

    我有一个这样的模板 template h Declare a function func type void JOIN func T T t return undef T 我这样使用它来为不同类型生成相同的函数 example c defi
  • 将 powershell 控制台窗口移动到屏幕左侧的最佳方法是什么?

    尝试使用 PowerShell 脚本将当前活动的 powershell 窗口移动到屏幕左侧 我找到了这个功能 但它并没有真正提供任何示例 有趣又有趣的问题 如果你想移动窗口 你需要知道窗口句柄hWnd它的 对于控制台 您可以使用GetCon
  • 当工作表受到保护时,宏不起作用。运行宏返回运行时错误 1004

    我的工作簿中有三个工作正常的宏 但是 当我保护任何工作表时 它们会停止工作 并且我会得到一个run time error 1004 我尝试按照网上找到的两个建议进行操作 在宏代码开始处取消保护 在宏代码结束处保护 仅用户界面 但运行时错误仍
  • 在 Mathematica 中以编程方式创建多元函数

    这是从讨论中分离出来的earlier问题 假设我需要定义一个函数 f 来检查给定的图形标签是否是正确的着色 换句话说 我们为每个节点分配了一个整数 并且没有两个相邻节点得到相同的答案 例如 对于 Path 3 f 1 2 3 返回 True