JavaScriptで当選番号を書く方法

May 29, 2023 pm 12:02 PM

はじめに

フロントエンド開発では、宝くじの当選番号などの乱数を生成する必要があることがよくあります。 Javascript には乱数を生成するメソッドが用意されており、簡単に当選番号を生成できます。この記事ではJavaScriptで当選番号を生成する方法を詳しく紹介します。

当選番号生成の基本原理

当選番号の生成では、ランダム性と重複排除を考慮する必要があります。まず、乱数を生成する方法が必要です。 Javascript には、0 から 1 までの乱数を生成できる Math.random() メソッドが用意されています。

次に、当選番号のセットを生成する必要があります。当選番号は次の 2 つの条件を満たす必要があります:

1. 各当選番号は一意の値です。

2. 各当選番号が番号プールに表示される確率は同じです。

上記の 2 つの条件を満たすには、配列を使用して数値プール内のすべての数値を保存し、配列のランダムな並べ替え方法を使用して各数値の順序をシャッフルしてから、当選番号は最初から順に。

実装方法

簡単な抽選プログラムを実装してみましょう。 100 個の番号 (00001 ~ 00100) を含む番号プールがあり、そこから当選番号として 10 個の番号を引き出す必要があるとします。

1. 数値プールの生成

for ループと配列の Push メソッドを使用して数値プールを生成できます。

var codePool = [];   //号码池

for(var i=1;i<=100;i++){

  var code = i<10?'000'+i:i<100?'00'+i:'0'+i;   //格式化号码

  codePool.push(code);

}

上記のコードでは、三項演算子と文字列連結を使用して、数値を 5 桁の文字列にフォーマットします。たとえば、数値 1 は文字列「00001」に変換され、数値 11 は文字列「00011」に変換されます。

2. 数値プールを混乱させる

配列のsortメソッドを使用して、数値プール内の数値の順序を混乱させます。 sort メソッドはランダムな並べ替え関数を渡す必要があります。たとえば、Math.random() を使用して並べ替え基準を生成できます。

codePool.sort(function(){return Math.random()-0.5});

3. 当選番号を引き出す

次に、番号プールを最初から調べて、最初の 10 個の番号を当選番号として取り出します。

var winCodes = [];    //中奖号码

for(var i=0;i<10;i++){

  winCodes.push(codePool[i]);

}

4.当選番号の表示

最後に、生成された当選番号を表示します。

console.log(winCodes);

完全なコード

最終的なコードは次のとおりです:

var codePool = [];   //号码池

//生成号码池

for(var i=1;i<=100;i++){

  var code = i<10?'000'+i:i<100?'00'+i:'0'+i;

  codePool.push(code);

}

//打乱号码池

codePool.sort(function(){return Math.random()-0.5});

//抽取中奖号码

var winCodes = [];

for(var i=0;i<10;i++){

  winCodes.push(codePool[i]);

}

//展示中奖号码

console.log(winCodes);

概要

この記事では、当選番号を生成するための基本原則と実装方法を紹介します。ジャバスクリプト。 Javascript には、乱数を生成する Math.random() メソッドが用意されています。配列のランダム ソート メソッドを使用すると、数値プール内の数値の順序が崩れ、ランダムな抽選が行われる可能性があります。最後に当選番号を発表します。この記事で説明する方法は単純な実装であり、実際には特定のニーズに応じて改善できます。

以上がJavaScriptで当選番号を書く方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

フロントエンド開発者向けのWebAssembly(WASM)に深く潜ります フロントエンド開発者向けのWebAssembly(WASM)に深く潜ります Jul 27, 2025 am 12:32 AM

WebAssembly(wasm)isagame-changerfront-enddevelopersseekinghigh-forformancewebapplications.1.wasmisabinaryinstructionformatthatrunsatnear-nativespeed、enablinglanguageslikerust、c、andgotoexecuteinthebreblowser.2

Zustandを使用したパフォーマンスファースト州管理 Zustandを使用したパフォーマンスファースト州管理 Jul 25, 2025 am 04:32 AM

zustandisalightweight、performantStatemanagementsolutionforreaCtappSthativoidux’sboilerplate;

HTMLのリンクタグのREL属性の目的は何ですか? HTMLのリンクタグのREL属性の目的は何ですか? Aug 03, 2025 pm 04:50 PM

rel = "styleSheet" linkscssfilesforstylingthepage; 2.Rel = "preoad" hintstopreloadcriticalResourcesforPerformance; 3.REL = "ICON" setSthewebsite’sfavicon;

フロントエンドでOAUTH 2.0を理解して実装します フロントエンドでOAUTH 2.0を理解して実装します Jul 25, 2025 am 04:31 AM

OAUTH 2.0を使用する場合、PKCE認証コードプロセスを暗黙のプロセスではなく採用する必要があります。フロントエンドのローカルストレージのトークンの保存を避け、バックエンドを介してトークンを更新することを優先し、信頼できる認証ライブラリを使用して最優先統合が達成され、フロントエンドアプリケーションのセキュリティが確保されます。

HTMLのアンカータグのターゲット属性の目的は何ですか? HTMLのアンカータグのターゲット属性の目的は何ですか? Aug 02, 2025 pm 02:23 PM

thetargetattributeinanhtmlanchortagswheretoopenthelinkeddocument.1._ selfopensthelinkinthesametab(デフォルト).2._blankpensthelinkinewtaborwindow.3.__parentopensthelinkinkintheparentframe.4._topensthelinkinthefuntowdowing

反応のカスタム、再利用可能なフックを構築します 反応のカスタム、再利用可能なフックを構築します Aug 03, 2025 pm 04:51 PM

agoodcustomhookinReactisareusableFunctionStartingは、「使用」を「使用」しています

FrontEnd Internationalization(I18N)ベストプラクティス FrontEnd Internationalization(I18N)ベストプラクティス Jul 26, 2025 am 07:59 AM

フロントエンドの国際化を実現するには、4つのステップが必要です。まず、構造化されたJSONを使用して、ハードコーディングを避けるために翻訳コンテンツを中央に管理します。第二に、複雑な言語ルールをサポートするために、React-I18Next、Vue-I18N、FormatJSなどの成熟したI18Nライブラリを使用します。第三に、さまざまな言語の長さとRTLレイアウトに適応するために事前に設計し、スペースを予約し、弾性レイアウトを使用します。第4に、コンテキストを明確にするために翻訳アノテーションを追加し、コラボレーションを促進します。これらの4つのポイントは、メンテナンスコストを削減し、多言語の適応精度と開発効率を向上させることができます。

CSSサブグリッドを使用して複雑なUIレイアウトを作成します CSSサブグリッドを使用して複雑なUIレイアウトを作成します Jul 26, 2025 am 06:19 AM

cssssubgridenablethelementStoalignacrossrows andcolumnsofaparentgrid、solignmentissisusues innestedlayouts.1.itallowsiTemtoemtoinhherittheparent’sgridStructureByusingsubgrid for-grid-grid-grid-temgrid-temprate-template-complate-colrumnss.2.2

See all articles