Tag: 随机

mongoose得到一个除了一个随机元素

我有一个MongoDB的文章集合。 我select了一篇我想呈现的文章,并且我想要随机select其他两篇文章。 我想在我的collections中挑选两篇不一样的文章,而不是我之前select的文章。 一直在这个问题上几个小时,寻找一个解决scheme,但只发现如何随机挑选一个元素,但不是除了一个… 这是我现在拥有的: article.find({}, function(err, articles{ var articleChosen = articles.filter(selectArticleUrl, articleUrl)[0]; article.find({}) .lean() .distinct("_id") .exec(function(err, arrayIds){ var articleChosenIndex = arrayIds.indexOf(articleChosen._id); arrayIds.splice(articleChosenIndex, 1); chooseRdmArticle(arrayIds, function(articleRdm1Id){ var articleRmd1 = articles.filter(selectArticleId, articleRdm1Id)[0]; var articleRdm1Index = arrayIds.indexOf(articleRdm1Id); arrayIds.splice(articleRdm1Index, 1); chooseRdmArticle(arrayIds, function(articleRdm2Id){ var articleRmd2 = articles.filter(selectArticleId, articleRdm2Id)[0]; // do stuff with articleChosen, articleRmd1 and articleRmd2 }) }) }) […]

Node.js Javascript随机彩色打印

我试图使用颜色的JavaScript模块https://github.com/Marak/colors.js 使用node.js在terminal中打印随机颜色 随机生成器工作,但周期的东西混淆语法,不会正确打印颜色。 var colors = require('colors'); Array.prototype.random = function (length) { return this[Math.floor((Math.random()*length))]; } var color = ['.yellow', '.cyan', '.magenta', '.red', '.green', '.blue', '.rainbow', '.zebra'] var rcolor = color.random(color.length) console.log(rcolor + 'rcolor')

在Meteor的客户端和服务器上生成相同的随机数

使用Meteor,我需要一种方法在客户端和服务器上生成相同的随机数,这样我就可以从客户端方法的延迟补偿中获益。 我注意到meteor有一个随机包: http : //docs.meteor.com/#random 我不熟悉随机数字生成或encryption技术,我也不太了解随机数据包的一些Meteor文档,所以我有一些问题。 我可以使用这个包来实现我想要的吗? 如果是,我该如何使用它来做到这一点? 如果我在客户端上使用种子来生成随机数,然后发送种子到服务器重新生成相同的数字,那么不是一种不安全的方式来做到这一点…因为客户端不能被信任? 如果没有,是否有另一种方法来实现呢? 我的问题定义在步骤… 客户:生成种子 客户:从种子生成随机数 客户:发送种子到服务器 服务器:从种子生成随机数 失败…客户端生成的种子可以被窥视,并且可以被操纵 替代scheme: 客户:询问服务器的随机数 服务器:生成随机数 服务器:发送随机数到客户端 失败…往返意味着你不能利用meteor的延迟补偿 我的应用程序需要重复生成大量的随机数,所以我试图避免所有这些往返行程。

如何从哈希中获得一个数字

我试图在node.js创build0到1000000 (100万)之间的随机数。 散列是: var hash = crypto.createHmac('sha512', "value").update("another value").digest('hex'); //d89c8a02a8b4e2461eeddcc3d8e85f2dfdab62968a329840ec5df2c0be2852eb9321cb35ff8fd5f43e97857a618d35edf9ba7fff56319c56eae4f8509f02e7eb 随机数 var number = parseInt(hash.substring(0, 5), 16); // 887240 但有时我得到的数字大于100万,我怎么能防止这个?

在Javascript文件上执行基于random()的不同函数

我的网站调用一个js文件(名为file.js ),如下所示: <script src="urltothefile/file.js"></script> .js文件本身以random()函数开始,如果数字低于50,它应该打印出“Nothing here to see”,如果它更高,它应该执行一个javascript代码。 可以这样做吗?

Nodejs数组索引函数的用法

我试图在nodejs上开发一个随机的类别Id生成器函数。 首先,我从我的数据库中接收所有现有的类别Id,并将它们推入一个数组,然后生成一个随机整数(在边界之间),然后将随机数与我的cat ID数组进行比较。 我使用indexof()函数进行比较,但它总是返回true; 可能是什么问题。 这是我的代码; var random = require("random-js") var selectCategoryID = "SELECT id from category.category"; var catIdresult = client.querySync(selectCategoryID); var catIdArray = []; catIdresult.forEach(function (row) { var catId = row.id; catIdArray.push(catId); }); var randomNum = new random() var K = randomNum.integer(16777000, 16777999); if(catIdArray.indexOf(K)){ console.log("Error, the id is : " + K); } else […]

Javascript(node.js)特定的随机string生成器

我正在寻找一个有效的方法来build立一个随机的string,具有特定的要求,但可以改变的长度。 它必须 : 至less包含一个大写字符。 至less包含一个小写字符。 至less包含一个数字。 包含至less一个特殊字符:_- | @。,?/!〜#$%^&*(){} [] + = 随机string不一定是唯一的,但如果是,那么它更好。 它将被用在node.js服务器中,因此可以使用任何encryption库。 我看到Math.random().toString(36)接近,但没有得到我所有的东西。 我不确定是否应该尝试为此构build正则expression式。

生成一个64位整数的均匀分布

我在用着 var crypto = require('crypto'); var uid = crypto.pseudoRandomBytes(8); 生成64位的ID。 我不需要这些是真正的随机,但我希望他们均匀分布在0和ffffffffffffffff之间。 但是,他们不是。 以这种方式生成1,000,000个64位整数: var bignum = require('bignum'); var crypto = require('crypto'); var randomBignum = function() { return bignum.fromBuffer(crypto.pseudoRandomBytes(8)); } var avg = randomBignum(); var avg_len = avg.bitLength(); var lengths = {}; for (var i = 0; i < 1e6; i++) { var big = randomBignum(); […]

如何在Node ExpressJS中返回获取请求中的随机数据?

我已经build立了一个快速路线,我想返回一个随机化的string基于给定的字符。 API / practice.js const express = require('express'); const router = express.Router(); function randomChar(charArray) { //returns random character based of character array return charArray[Math.floor(Math.random() * (charArray.length))]; } function exerciseGenerator(charArray) { //returns randomized string let string = ''; let i; for (i = 0; string.length < 100; i += 1) { string += randomChar(charArray); // insert […]

JavaScript加权随机或时间百分比

我有一个每100ms运行一次的Node.js进程(setInterval)。 我每隔一段时间就要采取一些行动。 例如,2%的时间做X,10%的时间做Y,等等。 现在,我基本上是这样做的: var rand = Math.floor(Math.random() * (1000 + 1)); if(rand > 900) { // Do something } if(rand > 950) { // Do something } 问题是非常不一致。 if(rand > 900)至less接近10%的时候,你会想要,但是有时它可能是连续的10倍,或者根本不是。 如果我们假设100ms的时间间隔是固定的,那么有没有人会有更好的解决scheme的build议? 谢谢! 编辑:根据Dredel博士的评论: var count = 0; setInterval(function(){ if(count++ % 4 == 0) { console.log('25% of the time'); } }, 100);​