小编Kir*_*ril的帖子

如何在多列上进行INNER JOIN

我正在做一个家庭作业项目,我应该执行数据库查询,通过城市名称或机场代码查找航班,但该flights表只包含机场代码,所以如果我想按城市搜索我必须加入airports桌面.

机场表有以下几列:code, city
该航班表有以下几列:airline, flt_no, fairport, tairport, depart, arrive, fare
fairporttairport机场代码.
departarrive出发日期.

我想出了一个查询,它首先加入了fairport列和airports.code列上的航班.为了让我匹配,tairport我必须在第一次加入的先前比赛中执行另一次加入.

SELECT airline, flt_no, fairport, tairport, depart, arrive, fare
    FROM (SELECT * FROM flights
        INNER JOIN airports
        ON flights.fairport = airports.code
        WHERE (airports.code = '?' OR airports.city='?')) AS matches
    INNER JOIN airports
    ON matches.tairport = airports.code
    WHERE (airports.code = '?' OR airports.city = '?') …
Run Code Online (Sandbox Code Playgroud)

sql database

157
推荐指数
4
解决办法
37万
查看次数

Windows线程:_beginthread vs _beginthreadex vs CreateThread C++

什么是更好的方式来启动一个线程_beginthread,_beginthreadxCreateThread

我试图确定什么是优势/劣势_beginthread,_beginthreadexCreateThread.所有这些函数都返回一个新创建的线程的线程句柄,我已经知道CreateThread在发生错误时提供了一些额外的信息(可以通过调用来检查GetLastError)......但是当我发现时,我应该考虑哪些事情?我用这些功能?

我正在使用Windows应用程序,因此跨平台兼容性已经不可能了.

我已经浏览了msdn文档,但我无法理解,例如,为什么有人会决定使用_beginthread而不是CreateThread,反之亦然.

干杯!

更新:好的,感谢所有的信息,我也读过几个我不能打电话的地方,WaitForSingleObject()如果我用的话_beginthread(),但是如果我_endthread()在线程中打电话应该不行吗?这有什么交易?

c c++ winapi multithreading

130
推荐指数
8
解决办法
9万
查看次数

理解神经网络反向传播

更新:更好地解决问题.

我试图以XOR神经网络为例来理解反向传播算法.对于这种情况,有2个输入神经元+ 1个偏置,隐藏层中的2个神经元+ 1个偏置,以及1个输出神经元.

 A   B  A XOR B
 1    1   -1
 1   -1    1
-1    1    1
-1   -1   -1
Run Code Online (Sandbox Code Playgroud)

XOR神经网络示例

我正在使用随机反向传播.

在阅读了一点之后我发现输出单元的错误传播到隐藏层...最初这是令人困惑的,因为当你到达神经网络的输入层时,每个神经元都会得到一个错误调整来自隐藏层中的两个神经元.特别是,首先很难掌握错误的分配方式.

步骤1计算每个输入实例的输出.
步骤2计算输出神经元(在我们的例子中只有一个)和目标值(s)之间的误差:
步骤2 http://pandamatak.com/people/anand/771/html/img342.gif
步骤3我们使用步骤2中的错误计算每个隐藏单元的错误h:
步骤3 http://pandamatak.com/people/anand/771/html/img343.gif

"权重kh"是隐藏单元h和输出单元k之间的权重,这是令人困惑的,因为输入单元没有与输出单元相关联的直接权重.在盯着公式几个小时后,我开始思考求和意味着什么,并且我开始得出结论,连接到隐藏层神经元的每个输入神经元的权重乘以输出误差并总结.这是一个合乎逻辑的结论,但公式似乎有点令人困惑,因为它清楚地说明了'权重kh'(在输出层k和隐藏层h之间).

我在这里正确理解了一切吗?任何人都可以证实吗?

什么是输入层的O(h)?我的理解是每个输入节点有两个输出:一个进入隐藏层的第一个节点,另一个进入第二个节点隐藏层.应该将两个输出中的哪一个插入O(h)*(1 - O(h))公式的一部分?
第3步http://pandamatak.com/people/anand/771/html/img343.gif

computer-science machine-learning backpropagation neural-network

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

C#具有任意数量参数的函数的记忆

我正在尝试为具有任意数量参数的函数创建一个memoization接口,但我失败了,我觉得我的解决方案不是很灵活.我试图为一个函数定义一个接口,该接口在执行时自动被记忆,每个函数都必须实现这个接口.以下是具有两个参数指数移动平均值函数的示例:

class EMAFunction:IFunction
{
    Dictionary<List<object>, List<object>> map;

    class EMAComparer : IEqualityComparer<List<object>>
    {
        private int _multiplier = 97;

        public bool Equals(List<object> a, List<object> b)
        {
            List<object> aVals = (List<object>)a[0];
            int aPeriod = (int)a[1];

            List<object> bVals = (List<object>)b[0];
            int bPeriod = (int)b[1];

            return (aVals.Count == bVals.Count) && (aPeriod == bPeriod);
        }

        public int GetHashCode(List<object> obj)
        {
            // Don't compute hash code on null object.
            if (obj == null)
            {
                return 0;
            }

            List<object> vals = (List<object>) obj[0];
            int period = …
Run Code Online (Sandbox Code Playgroud)

c# performance function memoization

36
推荐指数
1
解决办法
8176
查看次数

使用布尔标志来阻止线程在C#中运行是否安全?

我主要关心的是布尔标志......没有任何同步就可以安全地使用它吗?我在几个地方读到它是原子的(包括文档).

class MyTask
{
    private ManualResetEvent startSignal;
    private CountDownLatch latch;
    private bool running;

    MyTask(CountDownLatch latch)
    {
        running = false;
        this.latch = latch;
        startSignal = new ManualResetEvent(false);
    }

    // A method which runs in a thread
    public void Run()
    {
        startSignal.WaitOne();
        while(running)
        {
            startSignal.WaitOne();
            //... some code
        }
        latch.Signal();
    }

    public void Stop()
    {
        running = false;
        startSignal.Set();
    }

    public void Start()
    {
        running = true;
        startSignal.Set();
    }

    public void Pause()
    {
        startSignal.Reset();
    }

    public void Resume()
    {
        startSignal.Set();
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# multithreading thread-safety

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

如何从多维数组中获取维(切片)

我试图弄清楚如何从多维数组中获取单个维度(为了论证,让我们说它是2D),我有一个多维数组:

double[,] d = new double[,] { { 1, 2, 3, 4, 5 }, { 5, 4, 3, 2, 1 } };
Run Code Online (Sandbox Code Playgroud)

如果它是一个锯齿状的数组,我会简单地调用d[0],这会给我一个数组{1, 2, 3, 4, 5},是否有一种方法可以实现与2D数组相同?

.net c# arrays jagged-arrays multidimensional-array

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

BeginConnect和ConnectAsync有什么区别?

BeginConnect和之间有什么区别ConnectAsync?随后,BeginDisconnect和之间有什么区别DisconnectAsync

ConnectAsync文件规定:

"开始远程主机连接的异步请求."

BeginConnect文件指出:

"开始远程主机连接的异步请求."

无论是DisconnectAsyncBeginDisconnect也说出了同样的事情:

"开始异步请求以断开与远程端点的连接."

这些方法对与应该使用哪种方法之间的区别是什么?

c# sockets asynchronous connect disconnect

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

SQL字符串值跨越查询中的多行

更新:bio可能包含撇号(参见更新示例)

我有一个SQL查询,其值跨越多行,并导致查询失败:

UPDATE User SET UserId=12345, Name="J Doe", Location="USA", Bio="I'm a
bio that has an apostrophe, and I'm 
spanning multiple lines!" 
WHERE UserId=12345
Run Code Online (Sandbox Code Playgroud)

在C#中,您可以@在字符串之前放置一个Bio=@"..." 以允许它跨越多行,但我不确定如何使用SQL查询实现相同的功能.你如何得到一个跨越多行的字符串,而不必像手动连接字符串那样:

Bio="I'm a"
+" bio that has an apostrophe, and I'm"
+" spanning multiple lines!" 
Run Code Online (Sandbox Code Playgroud)

sql sqlite string

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

gtest.lib和gtest_main.lib有什么区别?

Google的C++ Test Framework有两个输出库:一个是gtest.lib,另一个是gtest_main.lib.根据Nik Reiman关于如何使用Visual Studio设置gtest 的答案,我们应该链接到gtest_main.lib但是我链接到gtest.lib并且我运行的示例测试用例运行正常.

两个库之间有什么区别,我链接到哪一个是否重要?

c++ linker googletest visual-studio-2008

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

如何在不面向java.lang.ClassNotFoundexception的情况下在Eclipse Web项目中安装JDBC驱动程序

有一个非常类似的问题,但在我的情况下,我的构建路径中没有任何重复的jar,所以解决方案对我不起作用.我现在已经搜索了谷歌几个小时,但我找到的解决方案都没有解决我的问题.我正在创建一个带有一些数据库连接的网站来完成作业.我正在使用MySQL数据库,在Eclipse中开发并在Windows上运行.

我一直在java.lang.ClassNotFoundException: com.mysql.jdbc.Driver使用以下代码:

import java.sql.*;
//...
public void someMethodInMyServlet(PrintWriter out)
{
    Connection connection = null;
    PreparedStatement query = null;
    try {

        out.println("Create the driver instance.<br>");
        Class.forName("com.mysql.jdbc.Driver").newInstance();

        out.println("Get the connection.<br>");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "secret");
        query = connection.prepareStatement( "SELECT * FROM customers");

        //...
    } catch (Exception e)
    {
        out.println(e.toString()+"<br>");
    }
}
//...
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我得到以下输出:

Create the driver instance.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)

它没有超越Class.forName...线,我无法弄清楚为什么!这是我做的:

  1. 下载mysql-connector.
  2. 把它放在我的MySQL文件夹中C:\Program Files\MySQL\mysql-connector-java-5.1.12\mysql-connector-java-5.1.12-bin.jar.
  3. 在Eclipse中打开项目属性.
  4. 添加外部Jar到我的构建路径,我选择了mysql-connector-java-5.1.12-bin.jar.

每当我尝试使用servlet时,无论我是否有jar或者我没有,我都会得到相同的错误.你能帮我搞清楚吗?

eclipse jdbc java-ee classnotfoundexception

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