小编id2*_*677的帖子

如何根据Map中的Integer值相对于O(n)时间内的其他值随机选择一个键?

如果我们有一个Map<T, Integer>,假设整数值代表"有多少"Ts.因此,我想根据其Integer值统一选择T. 如果地图包含"a"= 4且"b"= 6的字符串,那么我想要它,以便选择40%的时间"a"并选择60%的时间"b".

最重要的是,我在O(n)中喜欢这个,在我之前的例子中,n是两个(不是十个).我最初创建了一个包含键的ArrayList,它包含了多少个值(并且只返回任何随机索引),但是这个过程不仅非常慢,而且对于Map<T, Integer>代表的内容完全违反直觉.

java random map uniform

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

在MySQL中使用REGEXP选择列

所以我有一个包含许多列的表.假设每列包含相似的关键字,仅相差几个.我想根据类似的关键字选择这些列.

起初,这是我的尝试:

SELECT * REGEXP 'pages_title$' FROM 'pages';
Run Code Online (Sandbox Code Playgroud)

也就是说,pages_title应该选择以任何结尾的列.所以REGEXP应该适用于列的名称,而不是任何条目.这可能吗?我在网上找到的所有示例都与使用REGEXP隔离表中的某些值有关,这不是我想要的.

regex mysql expression

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

Makefile和通配符

好吧,这是我目前的makefile设置.有些文件被命名public01.c,public02.c等等.我正在尝试使用public*.o带有通配符的标签为每个文件制作目标文件.

public*.o: public*.c hashtable.h
    $(CC) $(CFLAGS) -c public*.c

public*: public*.o
    $(CC) -o public* public*.o
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试运行makefile时,我得到了这个:

make: *** No rule to make target `public*.c', needed by `public*.o'.  Stop.
Run Code Online (Sandbox Code Playgroud)

我想这public*.c是一个标签,而不是我喜欢的通配符.我阅读了关于$(wildcard pattern...)功能并玩弄它,但我并没有真正了解它或让它工作......

gnu makefile wildcard

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

在OCaml中的每个递归调用中保持计数器

我正在尝试编写一个函数,该函数返回v给定列表中传递值的索引x; -1如果没有找到.我尝试解决方案:

let rec index (x, v) =
    let i = 0 in
        match x with
        [] -> -1
        | (curr::rest) -> if(curr == v) then
                            i
                          else
                            succ i; (* i++ *)
                            index(rest, v)
;;
Run Code Online (Sandbox Code Playgroud)

这对我来说显然是错误的(每次都会返回-1),因为它会i在每次传递时重新定义.我有一些模糊的方法,在我的头脑中使用单独的功能,没有我现在可以写下来的.我知道这是所有编程中的常见模式,所以我的问题是,在OCaml中执行此操作的最佳方法是什么?

ocaml functional-programming

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

使用AJAX调用的jQuery卸载无法在Chrome中运行

这是我非常简单的代码片段:

$(window).unload(function() {
        $.ajax({
            url: 'stats_pages.php?last_id='+$("#last_id").val(),
        });
});
Run Code Online (Sandbox Code Playgroud)

很简单.AJAX调用在Firefox中完美调用,但在Chrome中失败.我尝试了其他变体,这些工作:

window.onbeforeunload = function(){
        $.ajax({
            url: 'stats_pages.php?last_id='+$("#last_id").val(),
        });
        return false;
}
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome,但它通常会以"您确定要离开此页面吗?"提醒"虚假".消息,这显然不是我想要的.没有它return false;,它不会激活AJAX调用.

理想情况下,我喜欢第一个最好的解决方案,但有人知道发生了什么吗?

javascript ajax jquery onbeforeunload

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