1.0.1 • Published 8 months ago

mi-random v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

mi-random

Supporting Languages

English日本語 / Japanese

Table of Contents

What's mi-random?

This section is currently under construction. Please wait for a while.


Return to table of contents

mi-random とは

mi-random は数値と文字列の動的な乱数での生成をサポートするパッケージである。長々と書く必要性があったコードを大幅に削減できるため、コードの可読性の向上に繋ぐことができるパッケージである。

関数一覧

ここでは、randomオブジェクト内に定義されている関数とその説明を紹介する。


目次


random.int() 関数

関数の定義

random = {
	// 省略
	int: (min = 0, max = 1) => {
		return Math.round(Math.random() * (max - min) + min);
	},
	// 以下省略
};

関数の説明

この関数は minmax の間の整数型の乱数を生成する関数です。

例えば次のコードような場合、コンソール上の表示は以下になります。

// コード
for (let i = 1; i <= 10; i++) {
	console.log(i + "回目:" + random.int(0, 10));
}
// 結果
"1回目:6"
"2回目:8"
"3回目:5"
"4回目:7"
"5回目:2"
"6回目:5"
"7回目:2"
"8回目:7"
"9回目:6"
"10回目:9"

*浮動小数点型の乱数を生成したい場合は random.float() を、整数型の疑似乱数を生成したい場合は random.sint() を参照。*

引数の指定

第一引数には生成する数の最小値を、第二引数には生成する数の最大値を指定してください。もし、第一引数もしくは第二引数を省略した場合は、第一引数には 0 が、第二引数には 1 が初期値として適用されます。


random.float() 関数

関数の定義

random = {
	// 省略
	float: (min = 0.0, max = 1.0) => {
		return Math.random() * (max - min) + min;
	},
	// 以下省略
};

関数の説明

この関数は minmax の間の浮動小数点型の乱数を生成する関数です。

引数の指定

第一引数には生成する数の最小値を、第二引数には生成する数の最大値を指定してください。もし、第一引数もしくは第二引数を省略した場合は、第一引数には 0.0 が、第二引数には 1.0 が初期値として適用されます。


random.str() 関数

関数の定義

random = {
	// 省略
	str: (length = 5 , ...allowType) => {
		let str = '';
		if (allowType.length === 0) {
			str = `!$%&()=~|-^¥[]{}@:;\`*+,./\\_?><1234567890QPWOEIRUTYALSKDJFHGZMXNCBVqpwoeirutyalskdjfhgmznxbcv`;
		}
		for (const allow of allowType) {
			switch (allow) {
				case "lowercase":
					str += "qpwoeirutyalskdjfhgmznxbcv";
					break;
				case "uppercase":
					str += "QPWOEIRUTYALSKDJFHGZMXNCBV";
					break;
				case "number":
					str += "1234567890";
					break;
				case "sign":
					str += `!$%&()=~|-^¥[]{}@:;\`*+,./\\_?><`;
					break;
				default:
					str += allow;
					break;
			}
		}
		let res = '';
		for (let i = 0; i < length; i++) {
			res += str[Math.round(Math.random() * str.length)];
		}
		return res;
	},
	// 以下省略
};

関数の説明

この関数は allowType に指定された文字から length 分のランダムな文字列を生成する関数です。

引数の指定

第一引数には生成する文字数を、第二引数には生成を許可するタイプ (lowercase uppercase number sign) を指定してください。もし、第一引数もしくは第二引数を省略した場合は、第一引数には 5 が、第二引数はすべての文字を適用するとみなし、lowercaseuppercasenumbersign に含まれるすべての文字を代入します。

第二引数について

第二引数になにかの文字が指定されていて、lowercase uppercase number sign のどれにも該当しない場合は、その文字を追加します。


random.shuffle() 関数

関数の定義

random = {
	// 省略
	shuffle: (array) => {
		for (let i = 0; i < array.length; i++) {
			const d1 = random.int(0, array.length - 1);

			const tmp = array[d1];
			array[d1] = array[i];
			array[i] = tmp;
		}
		return array;
	},
	// 以下省略
};

関数の説明

この関数は array に渡された配列の要素をシャッフルして返却する関数です。

引数の指定

第一引数に、配列型のシャッフルしたいものを指定してください。


random.sint() 関数

関数の定義

random = {
	// 省略
	sint: (min = 0, max = 2) => {
		max += 1;
		__random_setting.seed = (27853.3573543 * __random_setting.seed + 92584.164) % 1623343853;
		return Math.round(__random_setting.seed % (max - min) + min);
	},
	// 以下省略
};

関数の説明

この関数は __random_setting.seed に基づいて整数型疑似乱数を生成する関数です。

この関数は仕様上、max - min1623343853 以上の値を指定することができません。

引数の指定

第一引数には生成する数の最小値を、第二引数には生成する数の最大値を指定してください。もし、第一引数もしくは第二引数を省略した場合は、第一引数には 0 が、第二引数には 2 が初期値として適用されます。


random.sfloat() 関数

関数の定義

random = {
	// 省略
	sfloat: (min = 0, max = 2) => {
		max += 1;
		__random_setting.seed = (27853.3573543 * __random_setting.seed + 92584.164) % 1623343853;
		return __random_setting.seed % (max - min) + min;
	},
	// 以下省略
};

関数の説明

この関数は __random_setting.seed に基づいて浮動小数点型疑似乱数を生成する関数です。

この関数は仕様上、max - min1623343853 以上の値を指定することができません。

引数の指定

第一引数には生成する数の最小値を、第二引数には生成する数の最大値を指定してください。もし、第一引数もしくは第二引数を省略した場合は、第一引数には 0 が、第二引数には 2 が初期値として適用されます。


random.bool() 関数

関数の定義

random = {
	// 省略
	bool: () => {
    return random.int(0, 1) === 1 ? true : false; 
  },
	// 以下省略
};

関数の説明

この関数は random.int() を使用して boolean 型の値を返す関数です。

引数の指定

引数には何も指定しないでください。


random.percentOfTrue() 関数

関数の定義

random = {
	// 省略
  percentOfTrue: (times = 10000) => {
    let trues = 0;
    let tol = 0;

    for (tol = 0; tol < times; tol++) {
      if (random.bool()) {
        trues++;
      }
    }

    return (trues / tol) * 100;
  },
	// 以下省略
};

関数の説明

この関数は、指定された回数分 random.bool() を呼び出し、結果が true だった割合を返却する関数です。

引数の指定

第一引数には random.bool() を呼び出す回数を指定してください。この値を極端に大きくすると、精度は向上しますが、処理速度が低下しますので注意してください。もし、第一引数を省略した場合は、初期値として 10000 が適用されます。


random.percentOfFalse() 関数

関数の定義

random = {
	// 省略
  percentOfFalse: (times = 10000) => {
    let falses = 0;
    let tol = 0;

    for (tol = 0; tol < times; tol++) {
      if (!random.bool()) {
        falses++;
      }
    }

    return (falses / tol) * 100;
  },
	// 以下省略
};

関数の説明

この関数は、指定された回数分 random.bool() を呼び出し、結果が false だった割合を返却する関数です。

引数の指定

第一引数には random.bool() を呼び出す回数を指定してください。この値を極端に大きくすると、精度は向上しますが、処理速度が低下しますので注意してください。もし、第一引数を省略した場合は、初期値として 10000 が適用されます。


random.pick() 関数

関数の定義

random = {
	// 省略
  pick: (array) => {
    return array[random.int(0, array.length - 1)];
  },
	// 以下省略
};

関数の説明

この関数は、指定された配列からランダムに要素を取り出し、それを返却する関数です。

引数の指定

第一引数には配列を指定してください。省略した場合の定義はそれぞれの実行環境により異なります。


random.swap() 関数

関数の定義

random = {
	// 省略
  swap: (array, times = 1) => {
    for (let i = 0; i < times; i++) {
      const d1 = random.int(0, array.length - 1);
      const d2 = random.int(0, array.length - 1);

      const tmp = array[d1];
      array[d1] = array[d2];
      array[d2] = tmp;
    }

    return array;
  }
	// 以下省略
};

関数の説明

この関数は、指定された回数分配列の要素をランダムに交換する関数です。

この関数は random.shuffle() と違い、すべての要素をシャッフルするわけではありません。

引数の指定

第一引数には ランダムに交換したい配列を、第二引数には、交換したい回数を指定してください。もし省略した場合は、第一引数には何も渡されず、第二引数には 1 が指定されます。


ライセンス

ライセンスは MIT です。


目次に戻る