小编Pet*_* C.的帖子

替代熵源

好吧,我猜这完全是主观的,但我正在考虑随机数生成器的熵源.大多数发电机都按当前时间播种,对吗?好吧,我很好奇其他资源可以用来生成完全有效的,随机的(宽松的定义)数字.

使用多个来源(例如时间+当前硬盘寻找时间[我们在这里是非常奇妙的])一起创建一个比单个来源更"随机"的数字?来源数量的逻辑限制是什么?真的够多少钱?选择时间只是因为方便吗?

如果不允许这种事情,请原谅我,但我对这些消息来源背后的理论感到好奇.

theory random entropy

13
推荐指数
3
解决办法
4701
查看次数

C++中的非托管DLL

我一直在阅读很多关于C++中非托管DLL的教程/文章.然而,对于我的生活,我似乎无法掌握这个概念.我很容易因为它是否需要头文件,如何导出它,是否需要.lib文件以及你有什么看似不一致而感到困惑.

所以,我们假设我只有这样的函数:

public int calculateSquare(int num)
{
    return num*num;
}
Run Code Online (Sandbox Code Playgroud)

忽略实际的代码,我需要做什么才能将这个简单的函数本身变成一个我可以调用的DLL?我只是添加__dllexport或其他任何内容到第一行还是我需要标题?所有这一切让我感到困惑.

c++ dll unmanaged

8
推荐指数
2
解决办法
5673
查看次数

将其他JPanel添加到JPanel

相当基本的问题在这里.

基本上我有这样的代码:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(panel2(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}
Run Code Online (Sandbox Code Playgroud)

这一切都运作良好.问题是我还有另一部分要添加到中心.add(newPanel(), BorderLayout.CENTER)显然,只是使用不起作用.但你可以在JPanels中添加JPanels,对吗?

所以我做了以下改动:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(supersweetpanel(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}
Run Code Online (Sandbox Code Playgroud)

随着supersweetpanel():

public JPanel supersweetpanel() {
    JPanel sswp = new JPanel();
    setLayout(new BorderLayout());
    add(panel2(), BorderLayout.NORTH);
    return sswp;
}
Run Code Online (Sandbox Code Playgroud)

现在它覆盖了panel1!如果我将它设置为其他任何东西(CENTER,SOUTH有什么东西),前两个面板完全消失.非常感谢帮助.

java swing jpanel

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

当我计算一个大因子时,为什么我得到一个负数?

所以,简单的程序,计算一个阶乘数.代码如下.

int calcFactorial(int num)
{
    int total = 1;

    if (num == 0)
    {
        return 0;
    }

    for (num; num > 0; num--)
    {
        total *= num;
    }

    return total;
}
Run Code Online (Sandbox Code Playgroud)

现在,对于大多数数字来说,这样做工作得很好而且花花公子(肯定有更快更优雅的解决方案,但这对我有用).然而,当输入更大的数字,如250,它说得直言不讳,疯了.现在,250的前几个因子"位"是{250,62250,15126750,15438000,3813186000}以供参考.

我的代码吐出{250,62250,15126750,15438000,-481781296 },这显然是关闭的.我的第一个怀疑可能是我违反了32位整数的限制,但考虑到2 ^ 32是4294967296,我不这么认为.我唯一能想到的可能是它违反了签名的 32位限制,但它不应该能够考虑这种事情吗?如果签名是问题,我可以通过使整数无符号来解决这个问题,但这只是一个临时解决方案,因为下一次迭代产生938043756000,远高于4294967296限制.

那么,我的问题是签名限制吗?如果是这样,我可以做些什么来计算大数(虽然我已经做了一段时间的"大型英语"课程,但这可能很适合!)而不会再遇到这个问题?

c++ signed factorial

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

标签 统计

c++ ×2

dll ×1

entropy ×1

factorial ×1

java ×1

jpanel ×1

random ×1

signed ×1

swing ×1

theory ×1

unmanaged ×1