相关疑难解决方法(0)

如何对mathematica中的所有列表元素进行逻辑测试

我有一个列表,我想对每个元素应用逻辑测试,如果其中任何一个元素不满足这个条件,则返回false.我想在Mathematica中写这个或找到一个内置函数,但似乎ForAll并没有真正做到这一点.

我的问题是:如何最有效地做到这一点?

额外:Exists功能类似如何:即如果列表中有任何元素满足条件,则返回true.

wolfram-mathematica

9
推荐指数
2
解决办法
7564
查看次数

具有非标准评估的自定义函数(表现得像表)

我想一个函数AnyTrue[expr,{i,{i1,i2,...}}]用来检查是否exprTrue任何的i1,i2...它应该是就好像AnyTrueTable其次Or@@%,与它只评价差异expr直到第一次True被发现.

短路部分是可选的,我真正想知道的是模拟Table非标准评估序列的正确方法.

更新11/14

这是Michael的解决方案,您可以使用它来链接"for all"和"there exists"支票

SetAttributes[AllTrue, HoldAll];
SetAttributes[AnyTrue, HoldAll];
AllTrue[{var_Symbol, lis_List}, expr_] := 
  LengthWhile[lis, 
    TrueQ[ReleaseHold[Hold[expr] /. HoldPattern[var] -> #]] &] == 
   Length[lis];
AnyTrue[{var_Symbol, lis_List}, expr_] := 
  LengthWhile[lis, 
    Not[TrueQ[ReleaseHold[Hold[expr] /. HoldPattern[var] -> #]]] &] < 
   Length[lis];
AllTrue[{a, {1, 3, 5}}, AnyTrue[{b, {2, 4, 5}}, EvenQ[a + b]]]
AnyTrue[{a, {1, 3, 5}}, AllTrue[{b, {2, 4, 5}}, EvenQ[a + b]]]
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

3
推荐指数
1
解决办法
698
查看次数

标签 统计

wolfram-mathematica ×2