2012-02-02 4 views
0

タイトルによれば、jqueryでランダムな16桁の数字を作ることは可能ですか?JQueryはランダムな16桁の数字を作成できますか?

+4

'恐らくMath.round(Math.random()* 1E16)' – Chad

+1

http://stackoverflow.com/questions/1527803/generating-random-numbers-in-javascript – mrtsherman

+0

jqueryにはこれを実現するユーティリティがありません。プレーンなJavaScriptを使用するだけです。 – ggreiner

答えて

10

ちょうど使用:

Math.floor(Math.random()*1E16) 

EDIT:桁数が少ないの1/10機会についてあることを

注意。 Math.random()がのようなものを生成する場合、0.0942104924071337 * 1E160942104924071337であり、これは942104924071337と評価されます。 15桁の数字。

数字が16桁であることを100%保証する唯一の方法は、文字列として形成することです。私はちょうど@rjmunroの答えを試みた

number = (Math.random()+' ').substring(2,10)+(Math.random()+' ').substring(2,10); 
+0

してください、誰かが私に '1E16'を説明しています:) – ajax333221

+0

その略式の表記法です。 '1E16 == 1 *(10^16)'です。あなたはもっと詳しい情報を見ることができます[ここ](http://en.wikipedia.org/wiki/Scientific_notation#E_notation) – Chad

+0

私は 'Math.floor'を使うつもりはなかったと思うので、' 0-15 ' – ajax333221

5

いいえ、JAVASCRIPT!を使用してください。

jQueryはいくつかの魔法の魔法ではありません。

+0

これはちょうど:jQueryは2つの願いを与えて、1つの要望には足りないことを望みます。 – Chad

+0

+1これは何度も繰り返されてきましたが、それ以上の反復が必要です。 –

+0

'$( 'li')。randomSixteenDigitNumber;'私は思っています。 – mrtsherman

6

jQueryではなく、いいえ、普通のjavascriptで行うことができます。

Math.random()で始まり、2回の実行を連結します。

number = (Math.random()+' ').substring(2,10)+(Math.random()+' ').substring(2,10); 
+0

これは受け入れられた答えであるべきです – ajax333221

1

これは、生のjavascriptにはるかに適しているタスクです。例えば

var str = ''; 
var i; 
for (i = 0; i < 16; i++) { 
    var number = Math.floor(Math.random() * 10) % 10; 
    str += number; 
} 
+0

それは単に "生のjavascriptに適しています"、それはjQueryとはまったく関係ありません。 「オレンジだけを使ってアップルパイを作るにはどうしたらいいですか? – rjmunro

0

:私はrjmunroの答え@推薦するこの方法を使用します。
残念ながら、16ビット未満の文字列を生成するのは
です。非常にまれで、約1000万回に1回です。

'use strict'; 
var fs = require('fs'); 
var totalTimes = 100000000; 
var times = totalTimes; 
var fileName; 
var writeStream; 

while (times > 0) { 
    var key = (Math.random() + ' ').substring(2,10) + (Math.random() + ' ').substring(2,10); 
    times --; 
    if (key.length !== 16) { 
    var msg = 'a flaw key gened: ' + key + '\n'; 
    // create a log file at first time 
    if (!fileName) { 
     fileName = 'log/flaw_key_' + new Date() + '.txt'; 
    } 
    writeStream = fs.createWriteStream(fileName); 
    writeStream.write(msg); 
    writeStream.end(); 
    } 
    if (times === 0) { 
    console.log(totalTimes + ' times key gened'); 
    } 
} 

また@Dimitri Mikadzeの答えは、同様に以下の長さの文字列を生成するので、私は最終的に彼のソリューションのいくつかのコンセプトと方法を採用:

ここ

はnodejsで実行される、私のテストコードです

function getRandomInt(min, max) { 
    return Math.floor(Math.random() * (max - min + 1)) + min; 
} 

/** 
* Gen random digits string in specific length 
* @param {Int} length of string 
* 
* @return {String} 
* 
*/ 
function genString(length) { 
    var times = length; 
    var key = ''; 
    while (times > 0) { 
    times --; 
    key += getRandomInt(0, 9); 
    } 
    return key; 
} 

genString(16); // a 16 digits string 
+0

あなた自身の質問を作成してください。 – Nilambar

+0

私は別の方法を採用します。私の答えを編集して私の解決策を提供しましょう。 – ddhp

0

uがちょうど通過し、乱数を生成するためにこの機能を使用できる最小と最大パラメータ

function randomInt(min, max) { 

    return Math.floor(Math.random() * (max - min + 1) + min); 
} 

ランダム16桁、使用

randomInt(0, 9999999999999999); 
関連する問題