我正在尝试在C#应用程序中实现反三角函数.显然,我不是在谈论简单的逆罪,cos和tan,因为这些都是由Math类提供的.我正在寻找的是sec,cosec和cotan的反转:
Func<double,double> secant = (d => (1 / Math.Cos(d)));
Func<double,double> cosecant = (d => (1 / Math.Sin(d)));
Func<double,double> cotangent = (d => (Math.Cos(d) / Math.Sin(d)));
Run Code Online (Sandbox Code Playgroud)
现在我的问题是我想实现其中每个的反转,但我似乎无法找到适当的反转的简单定义 - arcsec,arccsc和arccot - 我可以将其转换为C#代码.
所以我的问题是你能否(a)指向一个好资源的方向或(b)向我展示一些示例代码?
我正在尝试使用FFT进行一些过滤.我正在使用r2r_1d计划,我不知道如何进行逆变换...
void PerformFiltering(double* data, int n)
{
/* FFT */
double* spectrum = new double[n];
fftw_plan plan;
plan = fftw_plan_r2r_1d(n, data, spectrum, FFTW_REDFT00, FFTW_ESTIMATE);
fftw_execute(plan); // signal to spectrum
fftw_destroy_plan(plan);
/* some filtering here */
/* Inverse FFT */
plan = fftw_plan_r2r_1d(n, spectrum, data, FFTW_REDFT00, FFTW_ESTIMATE);
fftw_execute(plan); // spectrum to signal (inverse FFT)
fftw_destroy_plan(plan);
}
Run Code Online (Sandbox Code Playgroud)
我做的所有事情都正确吗?我很困惑,因为在FFTW复数DFT中你可以用这样的标志设置变换方向:
p = fftw_plan_dft_1d(N,in,out,FFTW_FORWARD,FFTW_ESTIMATE);
或
p = fftw_plan_dft_1d(N,in,out,FFTW_BACKWARD,FFTW_ESTIMATE);
我正在寻找固定点16.16数字的最佳逆平方根算法。到目前为止,下面的代码是我所拥有的(但是基本上,它取平方根并除以原始数,我想得到不除数的平方根倒数)。如果更改了任何内容,则将为armv5te编译代码。
uint32_t INVSQRT(uint32_t n)
{
uint64_t op, res, one;
op = ((uint64_t)n<<16);
res = 0;
one = (uint64_t)1 << 46;
while (one > op) one >>= 2;
while (one != 0)
{
if (op >= res + one)
{
op -= (res + one);
res += (one<<1);
}
res >>= 1;
one >>= 2;
}
res<<=16;
res /= n;
return(res);
}
Run Code Online (Sandbox Code Playgroud) 我是核心数据的新手,所以如果我弄错了一些条款,请原谅.
我的xcdatamodel文件中有几个对象.它们都与关系和反向关系相互关联.如果我使用以下代码连接其中两个对象,则不设置反向关系.
[managedObj1 setValue: managedObj2 forKey:@"relatiohipName"];
Run Code Online (Sandbox Code Playgroud)
我似乎必须使用以下代码手动设置反向关系
[managedObj1 setValue: managedObj2 forKey:@"relatiohipName"];
[managedObj2 setValue: managedObj1 forKey:@"inverseRelatiohipName"];
Run Code Online (Sandbox Code Playgroud)
这似乎对我来说是错误的,但它是我能够使机制发挥作用的唯一方法.我在运行第一个代码块之后查看了sqlite数据库并且没有填充反向关系,但如果我运行第二个代码,那么关系就在那里.
而且,似乎一旦我在Core Data中创建了一个对象,我就无法在之后改变它.dp保持不变.一旦我退出应用程序并重新启动它,我似乎失去了对象的所有关系和属性.我的代码中生成的对象只有nil成员变量.
编辑:
注释掉的东西是之前完成的方式,未注释的东西就是我现在没有运气的方式.
这是我创建对象的地方:
NSEntityDescription* mobileEntity = [NSEntityDescription entityForName:@"WebServiceAuthService_mobileAdvertisementVO" inManagedObjectContext:managedObjectContext];
WebServiceAuthService_mobileAdvertisementVO *newObject = [NSEntityDescription insertNewObjectForEntityForName:[mobileEntity name] inManagedObjectContext:managedObjectContext];
//WebServiceAuthService_mobileAdvertisementVO *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"WebServiceAuthService_mobileAdvertisementVO" inManagedObjectContext:managedObjectContext];
Run Code Online (Sandbox Code Playgroud)
这是我分配其中一个对象成员变量的地方:
[self setValue:newChild forKey:@"advertisement"];
//self.advertisement = newChild;
Run Code Online (Sandbox Code Playgroud)
这是我保存上下文的地方:
NSError *error = nil;
if (managedObjectContext != nil)
{
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error])
{
DLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个非常非常快的布尔表达式引擎。我使用它来表示非常大的状态空间中的状态,因此我需要它每秒处理尽可能多的操作。该引擎的根本是产品的总和。我遇到了一个优化NOT运算符的问题。例如,如果我有一个带有N个小项的乘积之和,每个小项都有大约M个变量,则尝试求反,将创建M ^ N个小项,然后使用espresso算法对其进行简化。如果在逆操作期间间歇运行espresso算法,则可以加快速度并节省一些内存,但这还不够。我怀疑自己是第一个遇到此问题的人,并且我尝试进行研究,但似乎找不到有效的方法来解决此问题。
有人能指出我正确的方向吗?
我是OpenCV和图像处理算法的新手.我需要在C++中的OpenCV中进行逆离散傅里叶变换,但我不知道如何.我在互联网上搜索,但没有找到答案.我正在使用此页面中的代码在我的程序中进行傅里叶变换:http://opencv.itseez.com/doc/tutorials/core/discrete_fourier_transform/discrete_fourier_transform.html.我试图对该代码做反向,但我不知道我在哪里做错了.我的代码在这里(我认为整个代码都是错误的):
void doFourierInverse(const Mat &src, Mat &dst) {
normalize(src, dst, 0, -1, CV_MINMAX);
int cx = dst.cols/2;
int cy = dst.rows/2;
Mat q0(dst, Rect(0, 0, cx, cy));
Mat q1(dst, Rect(cx, 0, cx, cy));
Mat q2(dst, Rect(0, cy, cx, cy));
Mat q3(dst, Rect(cx, cy, cx, cy));
Mat tmp;
q0.copyTo(tmp);
q3.copyTo(q0);
tmp.copyTo(q3);
q1.copyTo(tmp);
q2.copyTo(q1);
tmp.copyTo(q2);
dst = dst(Rect(0, 0, dst.cols & -2, dst.rows & -2));
exp(dst, dst);
dst -= Scalar::all(1);
Mat planes[2];
polarToCart(dst, Mat::zeros(dst.rows, dst.cols, dst.type()), planes[0], planes[1]); …Run Code Online (Sandbox Code Playgroud) 我正在使用sympy查找矩阵的逆矩阵。我有下一个问题。当我计算矩阵的逆A并想证明它时,我得到了一个带分数的矩阵;我的意思是
>> import sympy
>> from sympy import pprint
>> from sympy.abc import *
>> import sys
>> sys.displayhook = pprint
>> from sympy.matrices import *
>> A = Matrix([[a, b],[c, d]])
>> B = A.inv()
>> B
>> [1 b*c -b ]
>> [- + ------------ -----------]
>> [a 2 / b*c\ / b*c\]
>> [ a *|d - ---| a*|d - ---|]
>> [ \ a / \ a /]
>> [ ]
>> …Run Code Online (Sandbox Code Playgroud) 为了生成伪随机排列,可以使用Knuth 洗牌。对合是一种自逆排列,我想,我可以通过禁止多次触摸一个元素来调整洗牌。然而,我不确定我是否可以有效地做到这一点,以及它是否平等地生成每个对合。
恐怕需要一个例子:在一个集合 上{0,1,2},有 6 个排列,其中 4 个是对合。我正在寻找一种以相同概率随机生成其中一个的算法。
一个正确但效率很低的算法是:使用 Knuth shuffle,如果没有对合则重试。
我做了一个程序,我必须在其中计算线性回归,但我陷入了矩阵求逆的问题。
我有
Double[,] location = new double[3,3]
Run Code Online (Sandbox Code Playgroud)
然后我充满了数字,但后来我不知道如何像线性代数一样计算它的逆矩阵。我在互联网上搜索了一个解决方案,但有一些 Matrix 类我不知道如何将我的 Double[,] 转换为。
那么,你知道一些优雅的方法来反转 Double[,] 吗,比如线性代数中的矩阵求逆?
y=np.log10(train_set["SalePrice"])
Run Code Online (Sandbox Code Playgroud)
我如何找到这个的反面??我希望它返回到原始值而不是缩放值