小编Paa*_*pan的帖子

如何检查线段与从水平角度的点发出的线光线之间的交点?

给定线段,即两个点(x1,y1)和(x2,y2),一个点P(x,y)和角度θ.我们如何找到这条线段和从水平方向θ角度θ发出的线光线是否相交?如果它们相交,如何找到交点?

graphics geometry

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

有什么区别 - 1)预处理器,链接器,2)头文件,库?我的理解是否正确?

好的,直到今天早上我才对这些术语感到困惑.我想我有所不同,希望如此.

首先,令人困惑的是,由于预处理器已将头文件包含在包含函数的代码中,因此链接器链接到汇编器/编译器生成的目标文件的库函数是什么?部分混淆主要是由于我对头文件和库之间的差异的无知而产生的.

经过一段谷歌搜索和堆栈溢出(就是术语?:p),我收集到头文件主要包含函数声明,而实际的实现是在另一个称为库的二进制文件中(我仍然不是100%)确定这个).

所以,假设在以下程序中: -

#include<stdio.h>
int main()
{
      printf("whatever");
      return 0;
}
Run Code Online (Sandbox Code Playgroud)

预处理器包括代码中头文件的内容.编译器/编译器+汇编器完成其工作,然后最终链接器将此目标文件与另一个实际存储方式printf()工作的目标文件组合在一起.

我的理解是正确的吗?我可能会离开...你能帮我吗?

编辑:我一直想知道C++ STL.它总是让我困惑的是它究竟是什么,所有这些标题的集合或什么?在阅读完回复之后,我可以说STL是一个目标文件/类似于目标文件的东西吗?

还有,我觉得在那里我可以读的像函数的函数定义pow(),sqrt()等等等等,我会打开头文件,而不是发现什么.那么,库中的函数定义是否是二进制不可读的形式?

c compiler-construction linker preprocessor header-files

13
推荐指数
1
解决办法
1万
查看次数

当A [i,j] = j*(A [i-1,j + 1] -A [i-1,j])时,找到第i行第一个元素的最有效方法是什么?

当第一行是1,1/2,3/....这是一个支持问题的图像. 图像有更好的描述.

是否存在比天真的O(n ^ 2)方法更有效的方法?

我在研究伯努利数时遇到了这个问题,然后又达到了"秋山谷谷算法".

其中一种方法可以是简单地预先计算结果并将它们存储在表格中.由于伯努利数量增长非常快,对于大多数实际目的而言,我们不需要更大的n的伯努利数.考虑伯努利(400) - 它的周围 - (10 ^ 550).

但只是在算法上看它,是否有比O(n ^ 2)更好的方法?

algorithm math bernoulli-numbers

13
推荐指数
1
解决办法
589
查看次数

如何使解析查找/保存操作同步?

我们在nodejs中编写服务器代码并使用Parse javascript sdk.我们经常需要获取或更新各种Parse对象.例如,使用用户名"Example"获取用户.

  function fetchUser(username)
  {
      var User = Parse.Object.extend("User");
      var query = new Parse.Query("User");
      query.equalTo("username",username);

      query.first({
        success: function(results) {
        console.log("Successfully retrieved " + results.length + " scores.");
        return results;
      },
      error: function(error) {
        console.log("Error: " + error.code + " " + error.message);
      }
     });
  }
Run Code Online (Sandbox Code Playgroud)

其他函数可能会调用此函数:

function test()
{
    var user = fetchUser("example");
    console.log(user); // would often print undefined
    return user;
}

function top()
{
    // some code
    var user = test();
    //some code
}

// and the function …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise parse-platform parse-javascript-sdk

6
推荐指数
2
解决办法
1539
查看次数

此请求在主机"example.com"上询问"/",但没有配置可以提供此请求的站点

我使用Apache/2.4.7来托管服务器.我正在主持phabricator.我们假设ip是xxxx,指向ip的域名是example.com.

以下是内容

/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
         ServerName http://x.x.x.x/
         DocumentRoot /home/ubuntu/phabricator/phabricator/webroot
         RewriteEngine on
         RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
         RewriteRule ^/favicon.ico   -                       [L,QSA]
         RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
        <Directory /home/ubuntu/phabricator/phabricator/webroot>
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride None
                Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


<VirtualHost *:80>
         ServerName http://example.com
         ServerAlias www.example.com
         DocumentRoot /home/ubuntu/phabricator/phabricator/webroot
         RewriteEngine on
         RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
         RewriteRule ^/favicon.ico   -                       [L,QSA]
         RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]


        <Directory /home/ubuntu/phabricator/phabricator/webroot>
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride None
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog …
Run Code Online (Sandbox Code Playgroud)

apache phabricator server

4
推荐指数
1
解决办法
2651
查看次数

为什么我的异步方法在执行调用方方法的下一行之前完成?

请考虑以下方法:

        public static void Main(string[] args)
        {
            Stopwatch stopwatch = new Stopwatch();

            // Begin timing.
            stopwatch.Start();

            Task task =  dosomething(stopwatch);
            Console.WriteLine("Waiting for async to finish {0}", stopwatch.Elapsed);
            task.Wait();
            Console.WriteLine("After wait {0}",stopwatch.Elapsed);


            // Stop timing.
            stopwatch.Stop();

            // Write result.
        }

        public static async Task dosomething(Stopwatch stopwatch)
        {
            Console.WriteLine("Started async", stopwatch.Elapsed);
            await dos();
            Console.WriteLine("Ended async", stopwatch.Elapsed);
        }

        public static async Task dos()  
        {
            Thread.Sleep(5000);
            Thread.Sleep(1000);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我本来希望输出按以下顺序进行:

开始异步

等待异步完成

异步结束

等待之后

但是我得到以下输出

开始异步

异步结束

等待异步完成00:00:06.0990283

等待后00:00:06.0992659

我以为,当您等待方法完成时,控制权将返回给调用方。因此,应该在“结束异步”之前调用“等待异步完成”。

c# async-await

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

为什么我在这里得到两个不同的输出?

以下两段代码产生两种不同的输出.

//this one gives incorrect output
cpp_dec_float_50 x=log(2)
std::cout << std::setprecision(std::numeric_limits<cpp_dec_float_50>::digits)<< x << std::endl;
Run Code Online (Sandbox Code Playgroud)

它给出的输出是

0.69314718055994528622676398299518041312694549560547

这是唯一正确的小数点后15位.如果x是双倍的话,即便如此,我们也会得到前15位正确的数字.似乎结果溢出了.我不知道为什么它应该.cpp_dec_float_50应该具有50位精度.

//this one gives correct output
cpp_dec_float_50 x=2
std::cout << std::setprecision(std::numeric_limits<cpp_dec_float_50>::digits)<< log(x) << std::endl;
Run Code Online (Sandbox Code Playgroud)

它给出的输出是

0.69314718055994530941723212145817656807550013436026

根据wolframaplha这是正确的.

c++ floating-point boost

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