小编pat*_*ati的帖子

从int列查询字符串?

我有一张桌子:

CREATE TABLE `ids` (
    id int(11) not null auto_increment,
    PRIMARY KEY (id)
);
Run Code Online (Sandbox Code Playgroud)

它包含一些ID:111,112,113,114等.

我提出了一个问题:

SELECT * FROM `ids` WHERE id = '112abcdefg'
Run Code Online (Sandbox Code Playgroud)

我没想到,但我得到了一个结果,一行ID为112.似乎MySQL悄悄地将我的字符串转换为整数,然后将其与列值进行比较.

如何更改查询以便从id列中查询相同的字符串将不会产生任何我期望的结果?MySQL中是否有严格的比较修饰符?

mysql

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

生成小于O(N)的N个准随机数

这是受到求职面试中的一个问题的启发:你如何有效地生成N个独特的随机数?他们的安全和分配/偏见并不重要.

我提出了一种天真的方式来调用rand()N次并通过反复试验消除欺骗,从而得到效率低下且有缺陷的解决方案.然后我读了这个问题,这些算法非常适合获得高质量的唯一数字,它们是O(N).

但我怀疑有些方法可以在低于O(N)时间复杂度的情况下为虚拟任务获得低质量的唯一随机数.我有一些可能的想法:

  • 存储许多预先计算的列表,每个列表包含N个数字并随机检索一个列表.对于固定的N,复杂度是O(1).使用的存储空间是O(NR),其中R是列表的数量.
  • 生成N/2个唯一的随机数,然后将它们除以2个不等的部分(奇数的floor/ceil,偶数的n + 1/n-1).我知道这是有缺陷的(重复可以弹出)而O(N/2)仍然是O(N).这更像是一种思考的食物.
  • 生成一个大的随机数,然后通过一些固定的操作(如按位运算,分解,递归,MapReduce或其他)从中挤出更多变体.
  • 以某种方式使用准随机序列(不是数学家,只是谷歌搜索这个术语).

你的想法?

random algorithm

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

标签 统计

algorithm ×1

mysql ×1

random ×1