小编fff*_*red的帖子

如何找到最好的(信息量最大的)绘图限制?

我正在为 1 个变量的函数开发一个 2D 绘图程序。它的设计非常简单,因此用户不必选择初始绘图限制(或“范围”)。

是否有已知的算法可以找到最有趣的绘图限制,只知道函数f(x)

笔记:

  • 的定义有趣的情节的限制是没有得到很好这里定义。这是问题的一部分:情节中最有趣的部分是什么?
  • 我已经有一个算法来确定函数f具有有限值的x值的范围。
  • 我正在使用 Javascript,但任何语言都可以。
  • 我不想使用现有的库。
  • 函数f仅限于用户可以使用基本数学运算符+ - * / ^和函数编写的表达式exp log abs sqrt sin cos tan acos asin atan ceil floor
  • 使用 Google 图表,您可以获得一些自动限制的示例。打字graph sin(x)效果很好,但graph exp(x)graph log(x)没有真正给出最好的结果。此外,graph sin(x*100)*exp(-x^2)没有选择我认为信息量最大的限制。但这对我来说已经足够了。

更新:

我发现PlotRangeMathematica中可以很好地自动执行此操作(请参阅此处)。是否有可用的源代码,或解释算法的参考资料?我在任何地方都找不到它。

更新:

我开始使用自适应优化算法来查找信息丰富的绘图范围,灵感来自这个站点。它不正常使用还,但目前的进展是在我的项目实施在这里。您可以尝试绘制一些函数,看看它是如何工作的。当我有一个完整的工作版本时,我可以发布答案。

algorithm plot wolfram-mathematica

5
推荐指数
1
解决办法
464
查看次数

Git 自动检测系统代理设置

我经常更改具有不同代理设置的位置,或者只是从 WiFi 更改为使用不同代理的电缆连接。

由于我使用的是 OsX,因此很容易从一种网络配置切换到另一种网络配置。但是 git 在.gitconfig文件中有自己的设置,我每次都修改那个文件很累。

有没有办法将代理(可能来自系统变量?)传递给.gitconfig文件,或者有诸如auto-detectsystem-proxy 之类的设置?

git proxy

5
推荐指数
1
解决办法
3448
查看次数

2
推荐指数
1
解决办法
64
查看次数

在python中,只有在赋值中使用函数时才返回值

我想做这样的事情:

def f():
    if assignment_requested: return "Return something"
    else: print "Return nothing"
Run Code Online (Sandbox Code Playgroud)

哪个应该给:

>>> f()
Return nothing
>>> a = f()
>>> print a
Return something
Run Code Online (Sandbox Code Playgroud)

我找不到任何方法来检查函数是单独调用f()还是用于分配变量a=f().有没有办法做到这一点 ?

例如,在Matlab中,可以使用if nargout>0.

python

-1
推荐指数
1
解决办法
167
查看次数

临时为指针分配任意值

假设我定义了一个指向任何类型的指针:A* p我想稍后分配它,但前提是我最初知道。

布尔值的基本解决方案

A* p;
bool assign_p = condition; // initially
p = assign_p ? new A : NULL; // later
Run Code Online (Sandbox Code Playgroud)

但是,我想避免使用额外的变量(布尔值)以节省空间,因为此过程发生在大型数组上。我的问题是:我可以使用指针作为临时布尔值吗?

具有任意指针值的解决方案?

A *p = condition ? (A*) 1 : NULL; // initially
A *p = p ? new A : NULL; // later
Run Code Online (Sandbox Code Playgroud)

这仅使用 1 个变量(指针),但即使(A*) 1它指向任何地方,分配是否安全且良好的做法?

与工会解决?

union boolA { bool assign; A* p; };
boolA P = {condition}; // initially
P.p = P.assign ? new A : NULL; // later …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

-1
推荐指数
1
解决办法
116
查看次数