小编Lan*_*ard的帖子

如何在 JavaScript 中精确找到极大的 BigInt 素数?

tl;dr如何获得一个非常大的 80 位 BigInt精确素数,而不是“可能的”素数?看来我找到并附在下面的代码只给你一个“可能的”素数。现在的问题是如何确定它是否是“精确”素数(即不是可能的,而是实际的)?

\n
\n

我被引导到这个 BigInt“随机值之间”代码,用于生成最小值和最大值之间的随机 BigInt,以及这个 BigInt 素数测试代码,我将其粘贴在下面。然后,我添加了一个简单的while循环来生成一定大小的 bigint,并检查素数(在我的例子中,素数也是p \xe2\x89\xa1 3 mod 4 ( prime % 4 === 3):

\n

\r\n
\r\n
let i = 0n\n\nwhile (i < 1000000000n) {\n  let n = randomBigIntBetween(\n    1000000000100000000010000000001000000000100000000010000000001000000000n,\n    10000000001000000000100000000010000000001000000000100000000010000000001000000000n\n  )\n  if (isPrime(n) && n % 4n === 3n) {\n    console.log(String(n))\n  }\n\n  i++\n}\n\nfunction randomBigIntBetween(minInclusive, maxExclusive) {\n  var maxInclusive = (maxExclusive - minInclusive) - BigInt(1)\n  var x = BigInt(1)\n …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm primes bigint

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

为什么我不能以编程方式将用户名/密码提交到Facebook/Twitter/Amazon/etc?

我希望有一个中央的,完全可定制的,开源的通用登录系统,允许您登录和管理所有在线帐户(可能有?)...

我刚开始构建一个Sinatra应用程序登录谷歌,Facebook,Twitter,亚马逊,OpenID和EventBrite后,我今天才发现RPXNow,看起来它可能会节省一些时间.

但我一直想知道,不是一个身份验证大师,为什么我不能只是有一个时尚的登录页面说"输入用户名和密码,并检查你的登录服务",然后在后台要么刮掉登录页面说EventBrite和以编程方式使用Mechanize提交表单,或者如果有API则使用API​​?如果他们不必经历弹出窗口和重定向并且他们可以使用任何以前存在的帐户,那将是如此清洁和更好的用户体验.

我的问题是:

  • 我不应该做那样的事情的原因是什么?

我不太了解cookies /会话/安全的严重细节,所以如果你可以描述或指向一些有用的链接,那将是很棒的.谢谢!

编辑:

我熟悉OpenID和API.我真的很想知道事情的安全/法律/保密方面.我完全理解机密性部分,不知道是否有关于此的合法写下来,但假设它在ssl下,并且我不存储任何数据(将存储cookie和令牌),有什么安全隐患?

security authentication screen-scraping

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

Ruby时间在2009-02-17T05:00-07:00格式?

如何使用日期时间格式打印红宝石时间:

2009-02-17T05:00-07:00
Run Code Online (Sandbox Code Playgroud)

喜欢 Time.now.to_datetime_s

ruby datetime

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

Ruby中随机数生成器的最快实现?

什么是编写ruby随机数生成器的最快方法?这有学术公式吗?

我这样做,对于10,000个随机数,它需要大约4秒钟:

def generate_random_num(count = 1)
  count.times.map do |i|
    # make a setting!
    num = rand(99999)
    num = "0" * (5 - num.to_s.length) + num.to_s
    redo if codes.include?(num)
    codes << num
  end
end
Run Code Online (Sandbox Code Playgroud)

我只是想生成多达99999个随机数,全部5位数.有小费吗?

ruby algorithm

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

一行计算我在Ruby类中定义的方法数量?

我能列出树中每个级别定义的方法的最简单方法是什么?

Admin < User < ActiveRecord::Base < ...
Run Code Online (Sandbox Code Playgroud)

......并且能够采用那些方法并说出我们在哪个模块中定义的方法.

ruby

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

霍夫曼编码如何找出编码唯一的性质

刚才我看到这个

这就是一个叫做霍夫曼编码的真正聪明的想法出现的地方!这个想法是我们用如下代码表示字符(例如a,b,c,d,...)。

a: 00
b: 010
c: 011
d: 1000
e: 1001
f: 1010
g: 1011
h: 1111
Run Code Online (Sandbox Code Playgroud)

如果仔细看这些,您会发现一些特别的地方!这些代码都不是任何其他代码的前缀。因此,如果我们写下来,010001001011我们可以看到它是010 00 1001 011baec!有没有任何歧义,因为0010100没有任何意义。

我领会了这一要点,但我不明白(a)它是如何被发现的,以及(b)您如何知道它是如何工作的,或者(c)它到底是什么意思。此行具体描述了它:

因此,如果我们写下来,010001001011我们可以看到它是010 00 1001 011...。

我看到这些是代码,但我不明白您怎么知道不以的形式阅读0100 01 0010 11。我看到这些值实际上不是表中的代码。但是,我看不出您将如何解决这个问题!我想知道如何发现这一点。如果我试图修改这样的代码和位,我会这样做:

  1. 提出一组代码,例如 10 100 1000 101 1001
  2. 尝试写出一些代码示例。因此,也许一个示例只是按上述顺序连接代码:1010010001011001
  3. 看看我是否可以解析代码。所以10还是哎呀,没了101还... Darnit,那也许是因为我可以优先添加到代码的解析,所以10比更高的优先级101。那让我10 100 1000 10 x不知道最后10个应该是101。Dangit。

因此,我将尝试添加诸如优先级功能之类的其他功能,或目前我无法想到的其他功能,以查看它是否有助于解决问题。

我无法想象他们会如何发现霍夫曼编码中的这些代码可以被唯一地解析(我仍然看不到它,它实际上是如何实现的,我必须写一些示例才能看到它,或者。 …

compression encoding bit-manipulation huffman-code

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

匹配表达式(模式匹配)如何不需要运行时类型信息来工作?

match该表达式是如何在高层次上实现的?编译器在幕后发生了什么才能知道如何将某些代码片段定向到一个分支与另一个分支,并在编译时弄清楚它?我不明白如果不存储运行时使用的类型信息,这怎么可能。

\n

像这个例子:

\n
fn tree_weight_v1(t: BinaryTree) -> i32 {\n    match t {\n        BinaryTree::Leaf(payload) => payload,\n        BinaryTree::Node(left, payload, right) => {\n            tree_weight_v1(*left) + payload + tree_weight_v1(*right)\n        }\n    }\n}\n\n/// Returns tree that Looks like:\n///\n///      +----(4)---+\n///      |          |\n///   +-(2)-+      [5]\n///   |     |   \n///  [1]   [3]\n///\nfn sample_tree() -> BinaryTree {\n    let l1 = Box::new(BinaryTree::Leaf(1));\n    let l3 = Box::new(BinaryTree::Leaf(3));\n    let n2 = Box::new(BinaryTree::Node(l1, 2, l3));\n    let l5 = Box::new(BinaryTree::Leaf(5));\n\n    BinaryTree::Node(n2, 4, l5)\n}\n\n#[test]\nfn tree_demo_1() {\n    let tree = sample_tree();\n    assert_eq!(tree_weight_v1(tree), (1 …
Run Code Online (Sandbox Code Playgroud)

compiler-construction pattern-matching rust

0
推荐指数
2
解决办法
1634
查看次数

到底如何为编译器构建“基本块”(以JavaScript为例)?

我正在开发一个编译器项目,想知道控制流图(CFG )的“基本块”的含义和实现。他们说基本块是用于没有任何分支的线性步骤序列。但首先,有几个问题:

  1. 如果存在嵌套分支怎么办?它是如何工作的?
  2. 条件分支语句内部的逻辑怎么样,是前一个块的一部分还是当前块(或第三个块)的一部分?

例如,假设我有这个:

let a = 10;
let b = 0;
if ((foo() && bar()) || baz()) {
  b = 20;
  if (hello > world) {
    b *= 3
  }
} else {
  b = 2 * a;
}
let c = a * b
log(a);
Run Code Online (Sandbox Code Playgroud)

这里,什么是“基本块”?

const blocks = [
  {
    inputs: [],
    statements: [
      'let a = 10',
      'let b = 0',
    ],
    outputs: ['a', 'b']
  },
  {
    // ...?
  }
]
Run Code Online (Sandbox Code Playgroud)

我不是问如何准确地实现数据流分析器,只是粗略地说在这样的示例中块应该是什么?一些伪代码会有所帮助。条件表达式 …

compiler-construction control-flow-graph

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

如何在Haskell中定义无序集合

想知道如何在Haskell中定义一个无序的组/集合,其中“集合”是指它可以具有相同元素的许多副本,而这些项是无序的。我知道ListHaskell 中的数据类型,但这是固有的顺序。我想查看无序集合/组/列表的定义。

haskell

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