小编Van*_*ace的帖子

C有班级吗?

好的,你可以叫我一个菜鸟,但我很困惑.

我的前同学付钱让我在C写一个程序.她给了我一个任务,它说了一句"等等等等至少两个类,编写至少一个构造函数并重写至少一个方法 "它一字一句地说.

然后我告诉她"这是C++而不是C"她说"但我们正在学习C"

我忽略了它并用c ++编写程序并发送给她,因为我以为她不知道她在说什么.她说"它不适用于代码块,wtf是cout <<",然后她发给我一大堆他们写的代码而不是cout和cin有printf和scanf.它必须是C.所以,我用printf和scanf重新编写了程序,她仍然说代码块抛出错误(我仍然把类作为任务要求).

C有班级吗?还是有误会或什么?

c class

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

序列预测LSTM神经网络落后

我正在尝试实现猜测游戏,用户猜测硬币翻转,神经网络试图预测他的猜测(当然没有后见之明的知识).游戏应该是实时的,它适应用户.我使用了突触js,因为它看起来很稳固.

然而,我似乎无法通过一个绊脚石:神经网络随着猜测不断落后.就像,如果用户按下

heads heads tail heads heads tail heads heads tail
Run Code Online (Sandbox Code Playgroud)

它确实识别出这种模式,但它却落后于两个动作

tail heads heads tail heads heads tail heads heads
Run Code Online (Sandbox Code Playgroud)

我尝试了无数的策略:

  • 当用户与用户一起点击头部或尾部时训练网络
  • 有一个用户条目和清除网络内存的日志,并重新训练所有条目,直到猜测点
  • 混合和匹配训练与激活一系列方法
  • 尝试移动到感知器立即传递一堆动作(工作比LSTM差)
  • 我忘了一堆其他的东西

建筑:

  • 2个输入,无论用户是否在前一回合中点击了头部或尾部
  • 2个输出,预测用户下次点击的内容(这将在下一轮输入)

我已经在隐藏层和各种训练时期尝试了10-30个神经元,但我经常遇到同样的问题!

我将发布我正在执行此操作的bucklescript代码.

我究竟做错了什么?或者我的预期对于预测用户实时猜测是不合理的?有没有替代算法?

class type _nnet = object
    method activate : float array -> float array
    method propagate : float -> float array -> unit
    method clone : unit -> _nnet Js.t
    method clear : unit -> unit
end [@bs]

type nnet = _nnet Js.t

external ltsm : int -> …
Run Code Online (Sandbox Code Playgroud)

neural-network lstm recurrent-neural-network

8
推荐指数
1
解决办法
602
查看次数

C++编译器是否识别2的幂?

我正在构建一个自定义哈希,我根据公式对字符串中的所有字母求和:

string[0] * 65536 + string[1] * 32768 + string[2] * 16384 + ...
Run Code Online (Sandbox Code Playgroud)

而且我遇到了一个问题,我是否应该将这些数字定义为int数组中的常量,如下所示:

const int MULTIPLICATION[] = {
    65536,
    32768,
    16384,
    8192,
    4096,
    2048,
    1024,
    512,
    256,
    128,
    64,
    32,
    16,
    8,
    4,
    2,
    1
}
Run Code Online (Sandbox Code Playgroud)

或者,也许我应该在计算哈希本身时生成这些数字(虽然由于它们尚未生成而可能会失去一些速度)?我需要数百万次计算这个哈希值,我希望编译器理解的主要内容是代替普通的MUL操作

MOV EBX, 8
MUL EBX
Run Code Online (Sandbox Code Playgroud)

它会的

SHL EAX, 3
Run Code Online (Sandbox Code Playgroud)

编译器是否理解如果我乘以2的幂来移位而不是通常的乘法?

另一个问题,我很确定当你用c ++编号*= 2时,它会移位.但只是为了澄清,是吗?


谢谢,我已经找到了如何在调试器中查看dissasembly.是的,如果您使用它,编译器确实理解移位

number *= 65536
Run Code Online (Sandbox Code Playgroud)

但是,如果你这样做,它会进行正常的乘法运算

number1 = 65536
number *= number1;
Run Code Online (Sandbox Code Playgroud)

c++ hash assembly

3
推荐指数
1
解决办法
614
查看次数

在速度方面,是否值得在交换前比较价值?

标题可能听起来很复杂,但在几行代码之后很容易理解.

假设你有一个指针数组,可能是NULL或可能指向实际结构.我们的任务是将所有指针设置为NULL(删除无关紧要).

我们可以通过以下方式实现:

 // first way
 array[i] = NULL;

 // second way
 if (array[i] != NULL)
      array[i] = NULL;
Run Code Online (Sandbox Code Playgroud)

我想知道,如果我们以第二种方式完成它,我们会在已经为NULL的值上保存一些速度吗?假设数组已经是50%NULL.我的大学讲师曾经提到过"比较并不需要花费太多,而价值在变化".这是真的吗?如果我们以第二种方式做到这一点,我们会对速度产生任何积极影响吗?或者额外的比较只会浪费时间?

c++ performance null pointers compare

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

Visual Basic 6 - 选择适当的功能

我正在研究visual basic 6,我们的产品由VB6模块组成,彼此使用.每个模块都有自己的exe.

当我在一个模块中引用一个函数时,我遇到了问题,这个函数有效,而在另一个模块中它没有.

例如,在一个模块中,我调用原始的VB6 Round函数,该函数采用以下参数:

Round(number,0)
Run Code Online (Sandbox Code Playgroud)

但在另一个模块中,有一个定义为的函数

Function Round(ByVal X As Variant) As Variant
Run Code Online (Sandbox Code Playgroud)

这应该被称为

Round(number)
Run Code Online (Sandbox Code Playgroud)

这会导致编译时错误,并且表示函数调用的参数数量错误,而在未定义此函数的其他模块上则没有错误.

现在,我可以使用它,但在其他地方,我实际上需要指定小数点精度,我称之为

Round(number,2)
Round(number,3)
Run Code Online (Sandbox Code Playgroud)

等等

我如何消除这些函数之间的歧义,只调用原始的VB6舍入函数?

vb6 function ambiguity

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

轻量级C但没有C++编译器

我正在通过一个项目帮助我的朋友,我是一个体面的C++程序员,但他们需要在C中完成程序.据我所见,当你在Visual Studio/Netbeans中打开项目时,它说的是C/C++.C++部分很糟糕,因为如果我写的话,我希望编译器说"我不懂"

class SumStuff {
    ...
Run Code Online (Sandbox Code Playgroud)

我已经习惯了C++而且我可能会写一些我朋友的讲师可能会说"这不是一个有效的C结构"的东西

任何好/轻量级的Windows编译器?

c compiler-construction

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

是否可以编写不可能的汇编代码?

说我的意思是说我们有这个

xx xx xx xx xx xx xx xx xx xx xx ...
Run Code Online (Sandbox Code Playgroud)

字节流.

现在,如果反汇编程序经历了该流的每个可能的组合,它会在任何时候抱怨命令是不可能的吗?我希望反汇编程序为每种可能的组合提供LEGIT输出,无论它做什么都无关紧要,但我希望它能成功地吐出指令,无论如何.

这可能吗?

assembly disassembly

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

Vim和ctags - 选择合适的标签

我在vim中使用ctags插件.我有一个恼人的问题 - 当我想跳转到成员函数定义时,一些具有重复名称的函数/方法列在我可以跳转的标签列表中.

更荒谬的是 - 这些标签中的大多数甚至都不匹配签名甚至是类!

怎么会这么笨?怎么能弄清楚我想要跳转到符号定义:使用相同的类和相同的签名.

如果没有插件可以执行此操作,我如何更改vim(最好使用脚本)在比较签名和类时选择成员?或者我是否必须深入了解vim代码本身呢?

我会张贴一个截图,以便人们理解我在说什么

截图

这是荒谬的,它提出了所有成员名称为"run"的标签,它甚至不关心检查相同的类和签名,因为它会完全消除这个问题!

vim ctags

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