问题列表 - 第32012页

使用浮点数作为哈希表的键是否安全?

我需要存储一对,float,int其中int值存储float我正在开发的工具中使用的模型中出现的值的数量,我想知道这样做是否安全.

在谈论用于直接比较的浮点数(或作为要散列的内容)时,有限精度应该是一个问题所以我认为不鼓励使用类似的方法,我是对的吗?

实际上问题是我没有任何其他信息与这些浮点数相结合所以我根本不能使用其他任何东西作为哈希表的关键,但同时,因为键将很多,具有良好的性能将是不错.

也许最好的解决方案是使用二叉搜索树(或更高级的数据结构)来获得至少O(logn)的平均情况,如果常数因子更好的话.

你有什么建议吗?只是为了让你知道我正在开发OCaml,但我认为这些考虑可以被认为是语言无关的

language-agnostic floating-point hashtable

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

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

ftell文件描述符?

有没有办法在原始文件描述符而不是FILE*上执行ftell()所做的操作(返回文件中的当前位置)?我认为应该有,因为你可以使用lseek()在原始文件描述符上寻找.

我知道我可以使用fdopen()创建一个对应于文件描述符的FILE*,但我宁愿不这样做.

linux file-descriptor ftell file-pointer

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

python:杀死孩子或报告他们成功的简单方法?

我想要

  1. 并行调用shell命令(例如下面的'sleep'),
  2. 报告他们的个人开始和完成情况
  3. 能够用'kill -9 parent_process_pid'杀死它们.

已经有很多关于这些事情的文章,但我觉得我还没有找到我正在寻找的优雅的pythonic解决方案.我也试图让对于完全不熟悉python的人保持相对可读(和简短).

到目前为止我的方法(见下面的代码)是:

  1. 将subprocess.call(unix_command)放在一个报告命令开始和完成的包装函数中.
  2. 使用multiprocess.Process调用包装器函数.
  3. 跟踪适当的pid,将它们全局存储,并在signal_handler中终止它们.

我试图避免定期轮询进程的解决方案,但我不确定原因.

有更好的方法吗?

import subprocess,multiprocessing,signal
import sys,os,time

def sigterm_handler(signal, frame):
        print 'You killed me!'
        for p in pids:
                os.kill(p,9)
        sys.exit(0)

def sigint_handler(signal, frame):
        print 'You pressed Ctrl+C!'
        sys.exit(0)

signal.signal(signal.SIGINT, sigint_handler)
signal.signal(signal.SIGTERM, sigterm_handler)

def f_wrapper(d):
        print str(d) + " start"
        p=subprocess.call(["sleep","100"])
        pids.append(p.pid)
        print str(d) + " done"

print "Starting to run things."

pids=[]

for i in range(5):
        p=multiprocessing.Process(target=f_wrapper,args=(i,))
        p.daemon=True
        p.start()

print "Got things running ..."

while pids:
        print "Still working ..." …
Run Code Online (Sandbox Code Playgroud)

python subprocess parent-child multiprocessing

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

如何存储经常改变DB位置的订购商品

我需要能够在DB中存储大量订购商品.到目前为止,这是直截了当的:

ID Position OtherFields
 1     45      ...
 2   4736      ...
 3    514      ...
 ...
Run Code Online (Sandbox Code Playgroud)

在查询中,我总是需要获得一些项目(基于OtherFields过滤),但顺序正确.也很容易,在位置上放置一个索引并使用"按位置排序".

现在问题是:项目经常更改其位置,而不仅仅是1或2.如果ID 2将位置从4736更改为2000,我需要更新其位置和旧位置2000和4735之间所有元素的位置,添加1在每一行.并且不仅每个事务更改一个ID而且还有一些ID,并且在短时间内可以有许多事务.

我认为处理更新问题最优雅的方法是使用链接列表而不是位置列,我可以通过将其前任链接到其后继者,然后通过在其之间链接将其插入其他位置,从而将ID 2从其旧位置移除新的前任和继任者.这将是每个职位变更的持续和少量更新,它也是我处理变更的首选方式(在我的案例中是Java).然而,这引起了N + 1问题查询正确的顺序-甚至几元,我不得不通过整个名单在最坏的情况下找出正确的顺序.

所以我的问题是:您建议在必要的更新和查询性能之间取得良好的平衡?

到目前为止,我看到两个有希望的方

  1. 是否存在DBMS(理想情况下是OpenSource),它不仅可以处理链接列表,而且还可以处理具有良好性能的链接列表,例如通过使用链接元素的内部索引?

  2. 也许只有一个BLOB可以选择存储整个链接列表!这样的链接列表有多大/它在数据库中使用了多少内存,并且当获取时让我们说1.000.000条目?我正在使用Java + Hibernate以防万一.我想在获取BLOB后处理内存中的整个列表应该非常快!

但当然也欢迎其他想法!

sql indexing recursion linked-list data-structures

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

Javascript列表像数据结构?

看来,如果我没有错,那么由于Javascript处理对象的方式,实现链表是不切实际或效率低下的.

我需要一个数据结构,在其中我可以轻松地执行2个操作(除了索引),最后附加并删除(弹出)给定索引处的对象.

是否使用Array和"重新创建"每个删除操作的最佳解决方案?我想不会.

有任何想法吗?

javascript arrays

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

不调用JSF Action

我再次遇到一个无法找到解决方案的问题.

托管bean

@Named(value="changeInfoBean")
@RequestScoped
public class ChangeInfoBean {

    private String email;
    private String firstName;
    private String lastName;

    /** Creates a new instance of ChangeInfoBean */
    public ChangeInfoBean() {
            FacesContext context = FacesContext.getCurrentInstance();
            // Gets the user which is currently logged in
            LoginBean bean = (LoginBean) context.getExternalContext().getSessionMap().get("loginBean");
            BasicUser user = bean.getUser();
            this.email = user.getEmail();
            this.firstName = user.getFirstName();
            this.lastName = user.getLastName();

    }

    public String changeName() {
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            Transaction tx = session.beginTransaction();
            BasicUser updateUser = (BasicUser) session.load(BasicUser.class, this.email); …
Run Code Online (Sandbox Code Playgroud)

java jsf

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

Visual Studio数据库项目中是否有一种方法可以在部署期间排除某些对象?

我有一个场景,我使用visual studio 2010数据库项目将更改部署到多个数据库安装,但在某些情况下,我想从该副本中排除一组视图.有没有办法使用构建配置来排除这些视图的部署?

deployment database-project datadude visual-studio

9
推荐指数
2
解决办法
4113
查看次数

德尔福:关闭括号可选吗?

我已经注意到很多次语法错误

Exit(push(ASBDD(asPixmap, _ScriptSavePixmap(Script, PMRGBAdjust(_ScriptGetPixmap(Script, Args[0].Index), adjparams))));
Run Code Online (Sandbox Code Playgroud)

实际编译.请注意,)缺少一个结束括号.(当然,如果我添加这个缺少的括号,它也会编译!)

这是一个记录的功能吗?

delphi syntax brackets

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

nvarchar连接问题

在处理所有困难的事情后,我可能会尝试做一件简单的事情但看起来这让我很头疼.我试图将文本连接到变量@strXml这是一个nvarchar变量来构建Xml元素,但@strXml返回null.请帮忙.我在下面发布我的代码.

DECLARE @strXml nvarchar(max) = ''
SET @strXml = '<PromoName>' + (Select PromoName From #Temp) + '</PromoName>' 
SET @strXml = @strXml + '<PromoDesc>' + (Select PromoDesc From #Temp) + '</PromoDesc>'
SET @strXml = @strXml + '<PromoCode>' + (Select PromoCode From #Temp) + '</PromoCode>' 
SET @strXml = @strXml + '<BeginDate>' + (Select Convert(nvarchar, BeginDate) From #Temp) + '</BeginDate>'
SET @strXml = @strXml + '<EndDate>' + (Select Convert(nvarchar, EndDate) From #Temp) + '</EndDate>'
SET @strXml = @strXml + '<RawHtml>' + (Select RawHtml …
Run Code Online (Sandbox Code Playgroud)

sql nvarchar

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