斜率场或方向场,是标量函数一阶微分方程解的图解表示。斜率场表示微分方程在笛卡尔平面上的某些垂直和水平间隔处的斜率,可用于确定曲线上某一点的近似切线斜率,其中曲线是微分方程的一些解。例如,考虑微分方程:
相应的斜率字段如下所示:

这个微分方程的另一个例子是:

您的任务是在控制台中生成这样的带有文本字符的斜率字段。您要为每个坐标对打印以下内容:
/,如果在(x, y)点处计算的微分方程是正的。\,如果在(x, y)点处求出的微分方程为负值。-,如果微分方程在(x, y) = 0点处计算。|,如果在(x, y)点处计算的微分方程未定义。输入是一个字符串,由以下数字组成:
表达式字符串可以使用任何内置的数学函数,并且只能将x或y作为变量。任何对数、(逆和/或双曲)三角函数或像sqrt(), pow(), exp(), abs()这样的函数的组合都可以在表达式中使用。图形半径也可以是0,这意味着只打印一个字符,其中包含原点的斜率。示例输入可能类似于:
plotRadius = 10
expression = "(x - y) / (x - 2 * y)"请注意这两个地块的边界是如何遵循的:-\text{plotRadius} \leq x, y \leq \text{plotRadius}。这将显示以下斜率字段:
/ / / / / / / / / / / / / / / / / / / / —
/ / / / / / / / / / / / / / / / / / / — \
/ / / / / / / / / / / / / / / / / / — \ \
/ / / / / / / / / / / / / / / / / — \ \ \
/ / / / / / / / / / / / / / / / — \ \ \ \
/ / / / / / / / / / / / / / / — \ \ \ \ |
/ / / / / / / / / / / / / / — \ \ \ | / /
/ / / / / / / / / / / / / — \ \ | / / / /
/ / / / / / / / / / / / — \ | / / / / / /
/ / / / / / / / / / / — | / / / / / / / /
/ / / / / / / / / / | / / / / / / / / / /
/ / / / / / / / | — / / / / / / / / / / /
/ / / / / / | \ — / / / / / / / / / / / /
/ / / / | \ \ — / / / / / / / / / / / / /
/ / | \ \ \ — / / / / / / / / / / / / / /
| \ \ \ \ — / / / / / / / / / / / / / / /
\ \ \ \ — / / / / / / / / / / / / / / / /
\ \ \ — / / / / / / / / / / / / / / / / /
\ \ — / / / / / / / / / / / / / / / / / /
\ — / / / / / / / / / / / / / / / / / / /
— / / / / / / / / / / / / / / / / / / / /请用空格分隔每一点。
发布于 2022-05-04 10:10:40
N\~=-(r=-N:N).|>y->println(join(r.|>x->abs(x~y)<Inf ? "\\-/"[Int(sign(x~y))+2] : "|"," "))获取plotRadius\df,其中df是一个黑匣子函数,并打印绘图。
发布于 2022-07-12 01:54:47
def g(r,e):
q=range(-r,r+1)
for x in q:
l=""
for y in q:
try:l+="-/\\"[cmp(e(-x,y),0)]+" "
except:l+="| "
print l以一个整数和一个函数作为输入,打印结果。
https://codegolf.stackexchange.com/questions/246872
复制相似问题