小编Ted*_*Ted的帖子

生成均匀随机浮点数,可以返回所有可能的值

在[0,1)中生成随机float64的一种简单方法是在[0,2⁵³]中生成一个均匀的随机int并将其除以2⁵³.这基本上就是rand.Float64()在做什么.但是,并非所有可能的float64值都在0和1之间生成:例如,如果该值低于2 - 4,则有效数字的最后4位总是为0.或者更简单地说,天真的方法总是返回2 - 3的倍数,而不是0到1之间的所有浮点数都是2 - 3的倍数.

如何生成一个随机的float64,例如每个可能的值都有可能被返回?(这里,均匀随机意味着实际区间 [0,1]:从概念上讲,我想在0和1之间选择一个均匀随机的实数,并返回最近的浮点数.)

对于上下文,我需要这个,因为我正在实现这篇论文并且假设"表示0和1之间的所有可能值"对于保持结果是必不可少的.

random floating-point go

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

在bash中查找重复文件的时间复杂性

我今天必须编写一个Bash脚本来删除重复文件,使用它们的md5哈希值.我将这些哈希值存储为临时目录中的文件:

for i in * ; do
    hash=$(md5sum /tmp/msg | cut -d " " -f1) ;
    if [ -f /tmp/hashes/$hash ] ;
    then
        echo "Deleted $i" ;
        mv $i /tmp/deleted ;
    else
        touch /tmp/hashes/$hash ;
    fi ;
done
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但让我想知道:这是一种节省时间的方法吗?我最初想过将MD5哈希存储在一个文件中,但后来我想"不,因为检查给定的MD5是否在这个文件中需要每次都重新读取它".现在,我想知道:使用"在目录中创建文件"方法时它是一样的吗?当同一目录中有大量文件时,Bash [-f]是否检查线性或准常量复杂度?

如果它取决于文件系统,那么tmpfs的复杂性是多少?

bash time-complexity tmp tmpfs

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

生成n个不是∞或NaN的不同浮点数(在Go中)

我想要一个函数getNthFloat(uint32 n) float32,对于每个n,m <2³²-4,其中n≠m,getNthFloat(n)getNthFloat(m)返回不同的浮点数,即实数(NaN和±∞).选择2³²-4是因为如果我正确理解IEEE 754,则存在两个NaN的二进制表示,一个用于∞,一个用于-∞.

我想我应该将我的uint32转换为位并将位转换为float32,但我无法弄清楚如何有效地避免这四个值.

floating-point nan type-conversion go infinity

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

XQuery:为什么"()=()"和"()eq()"评估为false?

以下XQuery代码段:

let $x := ()
return if (not($x eq $x) and not($x = $x))
    then "wat"
    else "makes sense"
Run Code Online (Sandbox Code Playgroud)

回报wat.为什么?在有效的布尔值,空序列的应该是false,但都false() eq false()false() = false()评估,以true...

xquery types boolean

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

BigQuery标准SQL:如何按ARRAY字段分组

我的表有两列,ida.列id包含一个数字,列a包含一个字符串数组.我想计算给定数组的唯一ID数,数组之间的相等性定义为"相同大小,每个索引的字符串相同".

使用时GROUP BY a,我明白了Grouping by expressions of type ARRAY is not allowed.我可以使用类似的GROUP BY ARRAY_TO_STRING(a, ","),但随后的两个数组["a,b"],并["a","b"]组合在一起,和我失去了我的数组的"真实"价值(所以如果我想在另一个查询后使用它,我必须分割字符串).

此字段数组中的值来自用户,因此我不能假设某些字符永远不会存在(并将其用作分隔符).

arrays string group-by sql-standards google-bigquery

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

Golang:以独特的方式打印字符串数组

我希望有一个功能func format(s []string) string,使得两个串片s1s2,如果reflect.DeepEqual(s1, s2) == false,然后format(s1) != format(s2).

如果我只是使用fmt.Sprint,切片["a", "b", "c"]["a b", "c"]所有打印[a b c],这是不可取的; 并且还存在string([]byte('4', 0, '2'))具有相同表示的问题"42".

string format go slice

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

Quantiles在BigQuery Standard SQL中运行

带有Legacy SQL的BigQuery有一个非常方便的QUANTILES功能,可以快速获取表中值的直方图,而无需手动指定存储桶.

我在标准SQL中可用的聚合函数中找不到一个很好的等价物.我是否遗漏了一些显而易见的东西,或者其他什么是模仿它的标准方法?

aggregate-functions histogram google-bigquery bigquery-standard-sql

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

在 BigQuery 中对固定数量的行进行高效采样

我有一个大小为 N 的大型数据集,并且想要获得大小为 n 的(均匀)随机样本。这个问题提供了两种可能的解决方案:

\n\n
SELECT foo FROM mytable WHERE RAND() < n/N\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x86\x92 这很快,但没有给我精确的 n 行(仅大约)。

\n\n
SELECT foo, RAND() as r FROM mytable ORDER BY r LIMIT n\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x86\x92 这需要对 N 行进行排序,这似乎不必要且浪费(特别是如果 n << N)。

\n\n

有没有一种解决方案可以结合两者的优点?我想我可以使用第一个解决方案来选择 2n 行,然后对这个较小的数据集进行排序,但它有点难看并且不能保证工作,所以我想知道是否有更好的选择。

\n

random google-bigquery

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