小编har*_*ath的帖子

Prolog中==和=有什么区别?

有人可以解释Prolog中===运营商之间的区别吗?我知道这X = Y意味着X与Y统一并且如果X已经与Y统一或者可以与之结合,则为真,但我不明白这是如何不同的==.

跟进:那(见接受的答案)是有道理的.还有一个问题是,是否存在X \= Y真实且X \== Y错误的情况(反之亦然)?也就是说,X \= Y测试它们是否无法统一或者它们目前是否统一?

prolog

29
推荐指数
2
解决办法
4万
查看次数

如何预测船舶与船体在2D中的影响范围之间的相遇

长时间听众,第一次来电.我正在XNA做一个小爱好游戏,它关于太空中的运输船,类似于海上的集装箱船.我需要能够在受限制的2D环境中预测船舶与行星/卫星重力影响范围之间的相遇.船舶和行星/月球身体的位置,简称身体,是由开普勒轨道元素决定的.船体和船体都在同一个吸引中心轨道运行.

我到目前为止设计的方法是首先对apoapsis和periapsis(距离吸引中心最远和最近的点)做一些初步检查,看看是否有可能遇到.在诸如此类的检查之间以及如果船舶的轨道是开放的(双曲线,我将抛物线情形近似为双曲线),它可以排除许多无法遇到的情况.

如果这些检查确定可能遇到相遇,我确定该船舶有资格进行遭遇的距离中心的最小和最大距离.然后我得到船舶轨道的交点与由该最小值和最大值定义的两个圆圈.这导致船舶轨道上的零点,两点或四点,定义零点,一点或两点,它可能遇到车身的球体.此时,如果交叉点为零,则整个船舶轨道可能位于遭遇区域,这可能是一种不常见的极端情况,但需要进行覆盖.

我可以得到船舶在其轨道上通过这些点的时间,给出一个或两个窗口的时间来检查遭遇,但从那里我最好的解决方案是通过将其分成步骤来搜索时间跨度,计算身体在那些时候,然后测试遭遇.

这种方法的问题在于知道大小以便有效地找到遭遇的步骤.及时获取Body的位置有点贵,所以我宁愿尽可能少地做,但步数太大可能会错过相遇.

是否有共焦圆锥形状的特性可以帮助减少搜索空间?或者是否有其他方法来预测有效地沿着圆锥路径移动的点和沿着共享焦点的椭圆移动的圆之间的相遇/碰撞.

c# algorithm math collision-detection orbital-mechanics

17
推荐指数
1
解决办法
1032
查看次数

有效地为立方根提供牛顿迭代

如何以有效的方式找到数字的立方根?我认为可以使用Newton-Raphson方法,但我不知道如何以编程方式猜测初始解决方案以最小化迭代次数.

algorithm math

12
推荐指数
2
解决办法
4021
查看次数

SMTP服务器无法从托管c#asp.net发送电子邮件

大家好日子.我写了一个基于asp.net mvc3的项目.项目的一部分基于从我的应用程序发送电子邮件.

public void SendEmail(string address, string subject, string message, int id)
{
        string email = "emailname@gmail.com";
        string password = "somepassword";

        var loginInfo = new NetworkCredential(email, password);
        var msg = new MailMessage();
        var smtpClient = new SmtpClient("smtp.gmail.com", 587);

        msg.From = new MailAddress(email);
        msg.To.Add(new MailAddress(address));
        msg.Subject = subject;
        msg.Body = message;
        msg.IsBodyHtml = true;
        msg.Attachments.Add(new Attachment(Server.MapPath("~/Content/StudentPdf/student" + id + ".pdf")));

        smtpClient.EnableSsl = true;
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = loginInfo;
        smtpClient.Send(msg);

}
Run Code Online (Sandbox Code Playgroud)

此代码在本地工作,完美地发送电子邮件.但是当我将其上传到托管时,会导致错误

SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.

我试图将端口更改为465,但是它会在主机上收到tcp_ip错误.还有一个:当用户尝试从此邮箱发送电子邮件时,谷歌告诉我应用程序上的可疑活动.这是因为我在一个国家的托管,而我在另一个国家.

我不知道接下来要做什么.我已经尝试使用谷歌搜索并找到了关于2级注册的内容,但是不明白我需要在我的方法中实现它.

我正在使用arvixe托管.也许其他人有同样的问题?

c# asp.net email hosting asp.net-mvc-3

7
推荐指数
1
解决办法
3653
查看次数

如何在PARI/GP中进行多行嵌套for循环?

如何在PARI/GP中创建跨越每个级别多行的嵌套循环?我经常需要在循环中做多个事情,为了便于阅读,我不喜欢在一行上编写循环.对于一个变量的循环,我一直这样做:

for(i=1,10,{
    printf("%u\n",i);
})
Run Code Online (Sandbox Code Playgroud)

但是,对于嵌套循环,我只设法将换行符放在一个级别.这有效:

for(i=1, 10, for(j=1, 10, {
     printf("%2u\t%2u\n", i, j);
}));
Run Code Online (Sandbox Code Playgroud)

这也有效:

for(i=1, 10, {
     for(j=1, 10, printf("%2u\t%2u\n", i, j));
});
Run Code Online (Sandbox Code Playgroud)

但是,这是我真正想做的事情:

for(i=1, 10, {
     for(j=1, 10, {
          printf("%2u\t%2u\n", i, j);
     });
});
Run Code Online (Sandbox Code Playgroud)

最后一个例子不起作用; 它给出了一个错误:

  ***   sorry, embedded braces (in parser) is not yet implemented.
... skipping file 'nested_for.gp'
  ***   at top-level: printf("%2u\t%2u\n",
  ***                 ^--------------------
  *** printf: not a t_INT in integer format conversion: i.
  ***   Break loop: type 'break' to go back to GP
Run Code Online (Sandbox Code Playgroud)

我在OS X …

pari-gp

6
推荐指数
1
解决办法
2553
查看次数

C 错误找到最大的质因数

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

bool isPrime(unsigned long long x) {
    if (x % 2 == 0)
        return false;
    for (unsigned long long i = 3; i < sqrt(x); x += 2) {
        if (x % i == 0)
            return false;
    }
    return true;
}

int main(int argc, char const *argv[]) {
    unsigned long long largest, number = 13195;

    for (unsigned long long i = 2; i < number; i++) {
        if (isPrime(i) && number % i …
Run Code Online (Sandbox Code Playgroud)

c primes

0
推荐指数
1
解决办法
112
查看次数