我正在为 1 个变量的函数开发一个 2D 绘图程序。它的设计非常简单,因此用户不必选择初始绘图限制(或“范围”)。
是否有已知的算法可以找到最有趣的绘图限制,只知道函数f(x)?
笔记:
+ - * / ^
和函数编写的表达式exp log abs sqrt sin cos tan acos asin atan ceil floor
。graph sin(x)
效果很好,但graph exp(x)
并graph log(x)
没有真正给出最好的结果。此外,graph sin(x*100)*exp(-x^2)
没有选择我认为信息量最大的限制。但这对我来说已经足够了。更新:
我发现PlotRange
在Mathematica中可以很好地自动执行此操作(请参阅此处)。是否有可用的源代码,或解释算法的参考资料?我在任何地方都找不到它。
更新:
我开始使用自适应优化算法来查找信息丰富的绘图范围,灵感来自这个站点。它不正常使用还,但目前的进展是在我的项目实施在这里。您可以尝试绘制一些函数,看看它是如何工作的。当我有一个完整的工作版本时,我可以发布答案。
我经常更改具有不同代理设置的位置,或者只是从 WiFi 更改为使用不同代理的电缆连接。
由于我使用的是 OsX,因此很容易从一种网络配置切换到另一种网络配置。但是 git 在.gitconfig文件中有自己的设置,我每次都修改那个文件很累。
有没有办法将代理(可能来自系统变量?)传递给.gitconfig文件,或者有诸如auto-detect、system-proxy 之类的设置?
-3<-2<-1
回报True
.
但是我希望它被解释为
(-3<-2)<-1
True<-1
1<-1
False
Run Code Online (Sandbox Code Playgroud)
怎么可能?
我想做这样的事情:
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
.
假设我定义了一个指向任何类型的指针: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)