小编Jim*_*myB的帖子

是否可以使用物理传感器生成随机数?

我听说人们使用光传感器,盖革计数器和其他物理传感器来生成随机数,但我持怀疑态度.有没有办法通过测量物理世界(使用Arduino或任何其他微控制器)生成随机数?如果是这样,这些数字是否真的是随机的?

澄清:问题是关于使用微控制器收集的数据生成随机数的可行性,这些随机数可以合理地应用于密码学 - 是依赖设备熵的替代方案.

random microcontroller avr arduino entropy

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

AVR链接器错误,"重定位被截断以适应"

我正在尝试为ATmega328 micro编译一些代码,我想使用Arduino的库和核心.我正在使用CMake.我已经编译了核心库以及我的代码的所有对象和Arduino的库.但是当它链接时,它们会向我显示以下错误.

..."重定位被截断以适合:R_AVR_13_PCREL对象"......"avr5/libgcc.a"......

通过谷歌发现这是一个常见的错误,但没有任何解决方案对我有用.我唯一不能做的是在链接器句子的末尾加上"-lm"和"-lc"标志,因为我不知道如何用CMake做到这一点.

编辑:我已经尝试使用makefile编译它,但我得到了相同的结果,甚至在链接器句子的末尾加上"-lm"和"-lc"标志.

我把Makefile和CMake文件放在这里:


CMakeList.txt主CMake文件

cmake_minimum_required(VERSION 2.6)
Project(IMU)

set(ARDUINO_PROCESSOR atmega328p)
set(ARDUINO_PROCESSOR_FREQ 1600000L)

include(./arduino.cmake)

add_library(ardlib
        libraries/EEPROM/EEPROM.cpp
        libraries/Wire/utility/twi.c
        libraries/Wire/Wire.cpp
        libraries/HMC58X3/HMC58X3
        )

LINK_DIRECTORIES(${IMU_SRC_DIR}/libarduinocore
        ${IMU_SRC_DIR}/libraries/EEPROM
        ${IMU_SRC_DIR}/libraries/Wire
        ${IMU_SRC_DIR}/libraries/HMC58X3
        )

link_libraries(arduinocore ardlib)

include_directories(
        libarduinocore
        libraries/EEPROM
        libraries/Wire
        libraries/Wire/utility
        libraries/HMC58X3
        )

set(C_SRCS
        ADXL345.cpp
        ApplicationRoutines.cpp
        DCM.cpp
        HMC5883L.cpp
        ITG3200.cpp
        matrix.cpp
        output.cpp
        timing.cpp
        vector.cpp
        )

set(C_HDRS
        ADXL345.h
        ApplicationRoutines.h
        DCM.h
        HMC5883L.h
        ITG3200.h
        matrix.h
        output.h
        timing.h
        vector.h
        declarations.h
        )

add_executable(IMU.elf main.cpp ${C_SRCS} ${C_HDRS})

add_subdirectory(libarduinocore)
Run Code Online (Sandbox Code Playgroud)

arduino.cmake.这是由CMakeList.txt导入的:

set(ARDUINO_PROCESSOR atmega328p)
set(ARDUINO_PROCESSOR_FREQ 16000000L)

# This module defines macros …
Run Code Online (Sandbox Code Playgroud)

linker avr arduino linker-errors avr-gcc

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

Java,编译错误,构造函数

我一直在尝试模拟ocjp 6测试.我问了一个问题,问问构造函数是否正确:

 1- public Test8(){}
 2- private void Test8(){}
 3- protected Test8(int k){}
 4- Test8(){}
Run Code Online (Sandbox Code Playgroud)

正确答案是1和3.我不明白为什么4是不正确的.当我测试以下代码时:

public class Test8 {
    Test8() {}

    public Test8() {}

}
Run Code Online (Sandbox Code Playgroud)

我有编译错误,但当我删除其中一个构造函数,如果编译没有任何问题.

有人可以帮我清理一下.

java constructor visibility scjp

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

发布 - 订阅系统的设计/代码调度程序

我的一个朋友在接受采访时被问到这个问题.我想在这里讨论这个问题

什么可以有效实现这个问题?

我遇到的一个简单想法是普通的memqueue,使用Memcache机器来扩展多个请求,运行的消费者作业会将内存从memcache写入DB.然后在第二部分我们可以运行一个sql查询来查找匹配订阅者的列表.

问题:-

事件发布到此系统.每个事件可以被认为包含称为C1,C2,... CN的固定数量(N)的字符串列.因此,每个事件都可以作为字符串数组传递(C1是数组中的第0个元素,C2是第1个元素,依此类推).

有M个订户 - S1,...... SM

每个订阅者都注册一个谓词,指定它感兴趣的事件的子集.每个谓词可以包含:

Equality clause on columns, for example: (C1 == “US”)
Conjunctions of such clauses, example: 
    (C1 == “IN”) && (C2 == “home.php”) 
    (C1 == “IN”) && (C2 == “search.php”) && (C3 == “nytimes.com”)
Run Code Online (Sandbox Code Playgroud)

(在上面的示例中,C1代表事件的国家/地区代码,C2代表网站的网页,C3代表引荐代码.)

即. - 每个谓词都是一些平等条件的结合.请注意,谓词不一定具有所有列的相等子句(即 - 谓词可能不关心某些或所有列的值).(在上面的例子中:#a不关心列C3,...... CN).

我们必须设计和编码一个可以将传入事件与注册用户匹配的Dispatcher.传入事件率以每秒百万次为单位.订阅者数量为数千.所以这个调度员必须非常高效.用简单的话说:

When the system boots, all the subscribers register their predicates to the dispatcher
After this events start coming to the dispatcher
For each event, the dispatcher has to emit …
Run Code Online (Sandbox Code Playgroud)

algorithm data-structures

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

从 WatchEvent 确定已删除文件的类型

我有一个WatchService监视目录树的ENTRY_CREATE, ENTRY_DELETEANDENTRY-MODIFY事件。问题是 a 的上下文WatchEvent<?>只给出了一个 Path 对象。在删除事件中,我不确定路径是否引用了常规文件的目录。

WatchKey key = null;

try {
    key = watcher.take();
} catch (InterruptedException e) {
    e.printStackTrace();
}

for (WatchEvent<?> event : key.pollEvents()) {
    if (event.kind() == StandardWatchEventKinds.OVERFLOW) {
        continue;
    }

    Path parent = (Path) key.watchable();
    Path p = parent.resolve((Path) event.context());

    for (DirectoryModifiedListener listener : listeners) {
        if (event.kind() == StandardWatchEventKinds.ENTRY_DELETE) {
            // only do this if p referred to a file, not a directory
            listener.onFileCreated(p);
        } …
Run Code Online (Sandbox Code Playgroud)

java io nio watchservice

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

Delphi属性读/写

在delphi类中声明属性时,是否可能有不同类型的结果?

例:

property month: string read monthGet(字符串) write monthSet(整数);

在这个例子中,我希望,在属性月份,当我:READ,我得到一个字符串; SET,我设置一个整数;

delphi integer properties read-write

5
推荐指数
2
解决办法
8761
查看次数

什么时候不应该使用EntityManager.flush()?

为了同步和检索数据库生成的 ID,我觉得被迫EntityManager.flush()在几个地方调用。

除了性能影响之外,还有什么理由打电话flush()呢?

换句话说,我的 (DAO, ...) 方法的调用者是否有任何可观察到的差异(如果有/没有)flush()

我的场景是在支持 JPA 开发人员的框架上下文中。我将提供一些功能,这些功能可能需要也可能不需要flush()调用层次结构深处的某个地方。这些函数的用户是否必须知道是否/何时发生刷新,或者它是一个私有实现细节,对调用者没有明显影响?

java jpa flush entitymanager eclipselink

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

为什么Node类中的Node指针不需要模板参数(例如在链表中)?

Node结构中我不知道为什么我应该使用Node * forward而不是Node<T> * forward.同样的问题适用于Node * backward.起初,我认为这是因为前进/后退永远不需要在他们的节点内"窥视"......他们只是直接的节点指针,他们不关心那里有什么.但后来,我发现自己通过调用等方式进入节点T temp = last->backward->data,并且工作得很好.所以我的一个理论就在窗外.

template <typename T>
struct Node {
public:
    T data;
    Node<T> * forward { nullptr };  //<-This works...but
    Node * backward { nullptr };    //<-I've been told no <T> is right
};

template <typename T>
class DoublyLinkedList{
public:
    /*
     ...methods...
     */
private:
    unsigned int size {0};
    Node<T> * first {nullptr};
    Node<T> * last {nullptr};
};
Run Code Online (Sandbox Code Playgroud)

关于如何更好地理解这一点的任何意见或建议将不胜感激.谢谢.

c++ templates pointers linked-list

5
推荐指数
0
解决办法
47
查看次数

f: R-&gt;R 或 f:Z-&gt;R 在离散数学中到底意味着什么?

我遇到了一个我不太熟悉的话题。它询问某个函数 f(x)=1/(x^2-2) 是否定义函数 f: R->R 和 f:Z->R。

问题想问什么?主题是离散数学。

set discrete-mathematics

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

C++:指针在传递后包含不同的地址

所以我有一些像这样的代码:

#include <iostream>

using namespace std;

class Base1 {};
class Base2 {};

class A
{
public:
    A() {}
    void foo(Base2* ptr) { cout << "This is A. B is at the address " << ptr << endl; }
};

A *global_a;

class B : public Base1, public Base2
{
public:
    B() {}
    void bar()
    {
        cout << "This is B. I am at the address " << this << endl;
        global_a->foo(this);
    }
};

int main()
{
    global_a = new A(); …
Run Code Online (Sandbox Code Playgroud)

c++ pointers multiple-inheritance memory-address visual-studio-2013

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

通过ObjectInputStream反序列化时StreamCorruptedException

我正在尝试测试一个程序,为此我需要访问ReadExternal函数,但我在ObjectInputStream上得到StreamCorrupted异常.我知道我需要使用WriteObject编写的对象,但不知道该怎么做...

ObjectOutputStream out=new ObjectOutputStream(new ByteArrayOutputStream());
    out.writeObject(ss3); 
    ss3.writeExternal(out);
    try{
         ByteInputStream bi=new ByteInputStream();
         bi.setBuf(bb);
         out.write(bb);
         ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bb));
         String s1=(String) in.readObject();
        }
        catch(Exception e){
            e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

java

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

如何使用Postgres选择24小时前的记录?

我正在使用这个查询 select * from table_nm where table_nm_date > NOW() - INTERVAL '24 hour'

但也给出今天的记录。请帮我。

Output : "2016-03-20 19:31:11.896159",
         "2016-03-21 08:24:58.223245",
         "2016-03-21 09:13:59.768953",
         "2016-03-21 09:51:25.161428",
         "2016-03-21 11:35:07.378706"
Run Code Online (Sandbox Code Playgroud)

我只想要2016-03-20的数据。

postgresql

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