Downcodes のエディターでは、JavaScript で乱数を生成するさまざまな方法を説明します。この記事では、Math.random() 関数を使用して基本的な乱数を生成する方法、Set コレクションを使用して一意の乱数を生成する方法、最新の暗号学的に安全な暗号化 API を使用して高セキュリティを生成する方法など、JavaScript で乱数を生成するためのいくつかの主要なテクニックについて詳しく説明します。乱数。具体的なコード例と詳細な説明を使用して、各方法の長所、短所、適用可能なシナリオを理解し、最終的にプロジェクトのニーズに最適なソリューションを選択できるようにします。フロントエンド開発の初心者であっても、経験豊富な開発者であっても、この記事は大いに役立つでしょう。
一連の乱数の実装は、フロントエンド開発、特に強力なスクリプト言語である JavaScript において特に重要です。主な方法には、Math.random() 関数の使用、配列を組み合わせて非反復乱数抽出を実現すること、Set コレクションの一意性の活用、最新の暗号化セキュリティ cryptoAPI の使用などが含まれます。その中で、Math.random() 関数を使用するのが最も直接的で一般的な方法です。この関数は、0 (両端を含む) から 1 (両端を含まない) までの擬似乱数の浮動小数点数を返すことができます。適切な調整とマッピングにより、ニーズを満たすさまざまな乱数シーケンスを生成できます。
Math.random() 関数は、0 から 1 までの擬似乱数の浮動小数点数を生成できます。より広い範囲、たとえば 0 から 10 までの乱数を生成する必要がある場合は、10 を乗算し、Math.floor() を使用して四捨五入することでこれを行うことができます。この方法はシンプルで簡単で、単一の乱数を生成するための基礎となります。
一連の乱数を生成するには、ループを通じてそれを Math.random() メソッドと組み合わせます。たとえば、各要素が 1 から 100 までの 10 個の乱数の配列を生成するには、次のようにします。
関数generateRandomNumbers(size, max) {
ランダム数値 = []; にします。
for (let i = 0; i < size; i++) {
randomNumbers.push(Math.floor(Math.random() * max) + 1);
}
乱数を返します。
}
let randomNumbers = generatedRandomNumbers(10, 100);
console.log(randomNumbers);
場合によっては、重複する要素を含まない乱数の配列が必要になることがあります。現時点では、Set コレクションの固有の特性を使用してこれを実現できます。既存の要素を Set に追加しようとしても、その要素は追加されないため、セット内での一意性が確保されます。
関数generateUniqueRandomNumbers(size, max) {
letrandomNumbersSet = new Set();
while(randomNumbersSet.size < size) {
randomNumbersSet.add(Math.floor(Math.random() * max) + 1);
}
return [...randomNumbersSet];
}
let uniqueRandomNumbers = generatedUniqueRandomNumbers(10, 100);
console.log(uniqueRandomNumbers);
より高いセキュリティを必要とする乱数生成のニーズに対して、暗号化 API はより安全な乱数生成メカニズムを提供します。 crypto.getRandomValues() メソッドは、暗号化要件を満たすランダムな値を生成できます。ほとんどのフロントエンド アプリケーションではこのような高水準の乱数生成スキームは必要ありませんが、オンライン ギャンブルやランダム パスワード ジェネレーターなどの安全性の高い Web アプリケーションの開発には非常に役立ちます。
関数generateSecureRandomNumbers(size) {
let array = new Uint32Array(size);
window.crypto.getRandomValues(array);
Array.from(array) を返します。
}
let secureRandomNumbers = generatedSecureRandomNumbers(10);
console.log(secureRandomNumbers);
アプリケーションのシナリオが異なれば、乱数に対する要件も異なります。これには、乱数の範囲、再現性、セキュリティなどの側面が関係する場合があります。したがって、乱数を生成する適切な方法を選択することが重要です。基本的な乱数生成に単純な Math.random() メソッドを使用する場合でも、Set コレクションを通じて一意の乱数配列を実装する場合でも、高度なセキュリティ要件を満たすために暗号化 API を使用する場合でも、JavaScript はさまざまな問題に対処する柔軟なソリューションを提供します。課題。
実際には、開発者は、オンライン ゲーム、データ分析、セキュリティ暗号化、またはランダム性を必要とするその他のアプリケーションの実装にかかわらず、特定のニーズや環境に基づいて適切な乱数生成戦略を選択する必要があります。正しい乱数生成方法は、正常な乱数を保証することです。プログラムの操作と望ましい結果を達成するための鍵。
JavaScript の柔軟性と強力な関数ライブラリにより、さまざまな乱数生成のニーズを実装するのに最適です。さまざまな生成方法の原理と使用法を理解することは、開発者がより効率的で安全なコードを作成するのに役立ちます。
1. JavaScript を使用して指定された範囲の乱数のセットを生成するにはどうすればよいですか?
指定された範囲内で一連の乱数を生成するには、Math.random() 関数といくつかの単純な数学演算を組み合わせて使用できます。まず、乱数の範囲を決定する必要があります。たとえば、1 から 100 までの乱数を生成するには、次の式を使用します。
Math.floor(Math.random() * (最大値 - 最小値 + 1)) + 最小値;ここで、max は範囲の上限、min は範囲の下限です。たとえば、10 から 20 までの乱数を生成したい場合は、次のコードを使用できます。
var min = 10;var max = 20;varrandomNumber = Math.floor(Math.random() * (max - min + 1)) + min;これにより、10 から 20 までの乱数が生成されます。
2. JavaScript を使用して一意の乱数のセットを生成するにはどうすればよいですか?
一連の非反復乱数を生成するには、配列を使用して生成された乱数を保存します。乱数が生成されるたびに、まずその数値が配列内に存在するかどうかを確認します。存在しない場合は配列に追加し、存在しない場合は重複がなくなるまで乱数を再生成します。配列のindexOf()メソッドを使用すると、配列に数値がすでに存在するかどうかを確認できます。サンプルコードは次のとおりです。
var range = 10; // 乱数の範囲 var count = 5 // 生成される乱数の数 var randomNumbers = [] // 乱数を格納する配列 while (randomNumbers.length < count) { var randomNumber = Math .floor(Math.random() * range) + 1; if (randomNumbers.indexOf(randomNumber) === -1) { randomNumbers.push(randomNumber); }}console.log(randomNumbers);上記のコードは、1 ~ 10 の非反復乱数の配列を生成します (配列の数は 5)。
3. JavaScript を使用して乱数の順序付きセットを生成するにはどうすればよいですか?
順序付けられた乱数のセットを生成するには、まず乱数のセットを生成してから、それらを並べ替えます。 JavaScript には、配列をソートするための sort() メソッドが用意されています。サンプルコードは次のとおりです。
var range = 100; // 乱数の範囲 var count = 10 // 生成する乱数の数 varrandomNumbers = []; // (var i = 0; i < count; i++) の乱数を生成します。 randomNumber = Math.floor(Math.random() * range) + 1; randomNumbers.push(randomNumber);}//乱数を並べ替えるrandomNumbers.sort(function(a, b) { return a - b;});console.log(randomNumbers);この記事が、JavaScript での乱数生成のさまざまな方法をより深く理解し、実際のニーズに基づいて最適なソリューションを選択できるようになることを願っています。 Downcodes の編集者は今後も高品質の技術記事を提供していきますので、ご期待ください。