JavaScriptおよびGOST-28884-90の公称シリーズ



秩序は私たちが理解しているカオスです。

ヘンリー・ミラー
公益事業
編集者: Far Manager 3.0ビルド4545 x86
コンパイラー: Microsoft JScript 5.8.18205

Node.js v0.12.0

SpiderMonkey-1.8.5
フォーマッター: js-beautify v1.5.4

芸術的なスタイル2.04
オプティマイザー: Google Closure Compiler v20160208
リンター: JavaScript Lint 0.3.0(Matthias Miller)

Google Closure linter 2.3.17
参照資料
情報: Wiki

GOST PDF
リポジトリ: Github

Npmjs
ソースコード
#!/usr/bin/env node /** * @name nominal.js * @author XGuest <xguest@list.ru> * @link https://github.com/xguest/nominal * @version 2.0.1.0 * @copyright GPL applies. * No warranties XGuest[05.02.2016/09:48:26] nominal[ver.2.0.1.0] * #guid {A645E9CA-BE33-4642-AF0F-B4EF046D31E7} * * @description       *        *  -28884-90,  63 63 * * @param {Number} [a]   -  , *   -  a >= (-1 * b) * undefined -     b * * @param {Number} [b]     * E3, E6, E12, E24, E48, E96, E192. * undefined -     a * * @return {Number|Object}  (a || b) = undefined - Object  *       */ /*eslint complexity: [2, 13]*/ function nominal(a, b) { function lg(a, b) { //    10 return parseInt(Math.log(a) / Math.LN10 * (b || 1), 10); //   } function pg(a, c) { //    10 var d = 25 > b ? 1 : 2; //   /*eslint no-unused-expressions: [2, { allowShortCircuit: true, allowTernary: true }]*/ 0 > a && (d -= a); //   return Number((Math.pow(10, a) * (c || 1)) // c =  .toFixed(0 < d ? d : undefined)); //  } /*eslint no-caller: 0*/ var c, d = {}; // c = tmp_var; d = out_var; if (!b) { //     for (b = 0; 7 > b; b++) { //    c = 3 * Math.pow(2, b); //    d[c] = arguments.callee(a, c); //  } return d; //   } if (!a) { //    for (a = 1; a < b + 1; a++) { //     d[a] = arguments.callee(-1 * a, b); //  } return d; //   } a = 0 > a ? // a < 0   (c = 25 > b ? 0 : 2, -1 * a - 1) : // (c = lg(a), d = lg(a / pg(c), b), d < 0 ? b + d : d); //   for (d = 0; 7 > d; d++) { //   if (b === (3 * Math.pow(2, d))) {d = 8;break;} //    } if (d !== 8 || Math.abs(a) > b) return; //    a = pg(a / b); //    return pg(c, //  {'2.6': 2.7, '2.9': 3, '3.2': 3.3, '3.5': 3.6, '3.8': 3.9, //  '4.2': 4.3, '4.6': 4.7, '8.3': 8.2, '9.19': 9.2}[a] || a); } module.exports = nominal;
      
      



抵抗器をチェックするために、彼らはプログラムを見つけるように頼み、インターネットにあるものを見て、自分でそれを書くことに決めました。 GOSTのテキストから、私は小さな選択を行い、それに応じてスクリプトを作成しました。 何かコメントがありませんか、それとももっと簡単な方法がありますか?



GOSTから



GOST-28884-90による名目系列は、指数関数的に増加する値のシーケンスを表します。



公称値とは異なる許容誤差の偏差を持つ7つの行が含まれます。

E3>±20%、E6±20%、E12±10%、E24±5%、E48±2%、E96±1%、E192±0.5%

行番号は、名目シリーズの要素の総数と要素シリアル番号の最大値を決定します。

たとえば、E3-1〜3の3つの要素... E192-1〜192の192要素。



式による額面の値:c = 10 ^((a-1)/ b)

aは要素のシリアル番号、

bは名目級数(3 * 2 ^ n)、nは0〜6の数値

cは額面です。



額面の値を取得するには、テーブルの値に10のn乗を掛けます。

nは任意の正または負の数です。



例外:

シリーズE3からE24では、2.6、2.9、3.2、3.5、3.8、4.2、4.6の計算値は0.10小さく、値8.3はシリーズ値の0.10だけ大きくなります。

シリーズE192の場合、計算された9.19の値は、額面の0.01未満です。



シリーズの10進数値:

-3〜24:9.10-1度、

-48から192まで:988.00-3度



値による逆数式インデックス:a = log(s)* b + 1

aは要素のシリアル番号、

bは公称級数です

cは額面です。



対数を新しいベースに移動するためのルール。

log_a(b)= log_d(b)/ log_d(a)
 function log(a, b) {return Math.log(b) / Math.log(a);};
      
      





まあ、それがすべてです。

皆さん、頑張ってください。

Xguest



All Articles