Eシリーズの優先番号を生成する


8

抵抗器およびその他の電子部品は、通常、Eシリーズ推奨数値の 1つに準拠する値で製造されます。IEC 60063では、次のEシリーズを定義しています。

E6:

10 15 22 33 47 68

E12:

10 12 15 18 22 27 33 39 47 56 68 82

E24:

10 11 12 13 15 16 18 20 22 24 27 30 33 36 39 43 47 51 56 62 68 75 82 91

E48:

100105110115121127127133140147154162162169178187196205215226237249261261274287301316332348365 365383402422442464487511536536562590619649 681715750787787825866909 953

E96:

100102105107110113115118121124127130133137140143143147150154158162165169169174178182187191196200205210215215221226232237243249255 261267274280287294301309309316324 332340 348 357 365 374 383 392 402 412 422 432 442 453 453 464 475 487 499 511 523 536 549 562 576 590 604 619 634 649 665 681 698 715 732 750 768 768 787 806 825 845 866 887 887 909 931 953 976

E192:

100101102104105106107109110111113114115117118120121123124126127129130132133135137138138140142143145147149150152152154156158160162164165167169172174174176178180 182 184 187 189 191 193 196 196 198 200 203 205 208 210 213 215 218 221 223 226 229 232 234 237 240 243 246 249 252 255 258 261 264 267 271 274 277 280 284 284 287 291 294 298 301 305 309 312 316 320 324 328 332 336 340 344 348 352 357 361 365 370 374 379 383 388 392 397 402 407 412 417 422 427 432 437 442 448 453 459 464 475 475 481 487 493 499 505 505 517 523 530 536 542 549 556 562 569 576 583 590 604 612 619 626 634 642 649 657 665 673 681 690 698 706 715 723 732 741 750 759 768 777 787 796 806 816 825 835 845 856 866 876 887 887 898 909 920 931 942 953 965 976 988

セットの単一の入力整数を指定して{6, 12, 24, 48, 96, 192}、対応するEシリーズを順番に出力します。指定されたシリーズの上記の数値を正確に含みます。

  • 出力は、リスト、配列など、ご使用の言語に適した形式にすることができます。
  • 基数10の整数のみ。
  • これらのシリーズを具体的に実装するビルトインは許可されていません。

回答:


4

Python 3、97バイト

lambda n:[round(10**(i/n+2-(n<25)))+((.4<i/n<.67)-(.9<i/n<.92))*(n<25)+(i==185)for i in range(n)]

1から10にスケーリングされた出力値は、指数補間によってよく近似されます。

10**(i/n)

10を掛けて6, 12, 24100を掛け48, 96, 192、最も近い整数に丸める

round(10**(i/n+2-(n<25)))

16を除くすべての値について正しい答えが得られ、誤差は±1になります。

n   i   est val  diff 
6   3   32  33  -1
6   4   46  47  -1
12  5   26  27  -1
12  6   32  33  -1
12  7   38  39  -1
12  8   46  47  -1
12  11  83  82  1
24  10  26  27  -1
24  11  29  30  -1
24  12  32  33  -1
24  13  35  36  -1
24  14  38  39  -1
24  15  42  43  -1
24  16  46  47  -1
24  22  83  82  1
192 185 919 920 -1

の場合n<=24、これらのエラーのほとんどは、間隔内の入力値に関するもの10/24<=i/n<=6/24です。にn==24トリクルダウンするための別のエラーが1つあり、のエラーがn==121つありますn==192。これらの誤差1は、推定値に加算または減算することにより修正されます。


1

Mathematica、904 879バイト

If[#>4!,{100,101,102,104,105,106,107,109,110,111,113,114,115,117,118,120,121,123,124,126,127,129,130,132,133,135,137,138,140,142,143,145,147,149,150,152,154,156,158,160,162,164,165,167,169,172,174,176,178,180,182,184,187,189,191,193,196,198,200,203,205,208,210,213,215,218,221,223,226,229,232,234,237,240,243,246,249,252,255,258,261,264,267,271,274,277,280,284,287,291,294,298,301,305,309,312,316,320,324,328,332,336,340,344,348,352,357,361,365,370,374,379,383,388,392,397,402,407,412,417,422,427,432,437,442,448,453,459,464,470,475,481,487,493,499,505,511,517,523,530,536,542,549,556,562,569,576,583,590,597,604,612,619,626,634,642,649,657,665,673,681,690,698,706,715,723,732,741,750,759,768,777,787,796,806,816,825,835,845,856,866,876,887,898,909,920,931,942,953,965,976,988}[[;;;;192/#]],{10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,91},[[;;;;24/#]]]&

非ゴルフ 大規模リスト無料 ロジックのみのバージョン:

If[#>4!,{E192}[[;;;;192/#]],{E24}[[;;;;24/#]]]&

ほぼバージョン、60バイト

Floor[Table[If[#>4!,100,10]Surd[10,#]^x,{x,0,#}]+.5][[;;-2]]

±1以内の精度


リストを数学的に生成することで、それよりもはるかに優れたことができると確信しています。ヒント:10の192乗根
デジタルトラウマ2016年

結構です。それは、入力192のための919だとき:( 920を与えること
CalculatorFeline

だから、どこでも使用しなければならないある種の「One True Formatting」がありますか?(申し訳ありませんが、なぜ編集するのですか?)
CalculatorFeline

@CatsAreFluffy h2は一般にh1よりも優先されますが、誰もがその規則に従うわけではありません。正当化は、h1がページ上で最大のものでなければならないということです。ちなみに、私はMathemeaticaが新しいゴルフ言語の悪い名前ではないだろうと思います...
リルトシアスト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.