Hasilkan E-series angka yang disukai


8

Resistor dan komponen elektronik lainnya biasanya diproduksi dengan nilai-nilai yang sesuai dengan salah satu E-series dari nomor disukai . IEC 60063 mendefinisikan E-series berikut:

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:

100 105 110 115 121 127 133 140 147 154 162 169 178 187 196 205 215 226 237 249 261 274 287 301 316 332 348 365 383 402 422 442 462 487 511 536 562 590 619 649 681 715 750 787 825 866 909 953

E96:

100 102 105 107 110 113 115 118 124 124 130 130 137 137 140 143 147 150 154 158 162 165 169 174 178 182 187 191 196 200 205 210 215 221 226 232 243 249 255 261 267 274 280 287 294 301 309 316 324 332 340 348 357 365 374 383 392 402 412 422 432 442 453 464 475 487 499 511 523 536 549 562 576 590 604 619 634 649 665 681 698 715 732 750 768 787 786 875 845 866 887 909 931 953 976

E192:

100 101 102 104 105 106 107 109 110 111 113 114 115 117 118 120 121 123 124 126 127 130 132 133 135 137 138 140 142 143 145 147 149 150 152 154 156 158 158 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 226 226 232 232 240 240 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 447 442 448 443 459 464 470 475 487 493 499 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 9565 976 988

Dengan bilangan bulat input tunggal dari set {6, 12, 24, 48, 96, 192}, output seri-E yang sesuai, secara berurutan, berisi angka-angka persis seperti yang ditunjukkan di atas untuk seri yang diberikan.

  • Output mungkin dalam format apa pun daftar, array, dll sesuai untuk bahasa Anda.
  • Hanya basis 10 integer.
  • builtin yang secara spesifik mengimplementasikan seri ini tidak diizinkan.

Jawaban:


4

Python 3, 97 byte

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)]

Nilai output yang diskalakan dari 1 hingga 10 didekati dengan baik oleh interpolasi eksponensial:

10**(i/n)

Mengalikan dengan 10 untuk 6, 12, 24dan 100 untuk 48, 96, 192kemudian pembulatan ke bilangan bulat terdekat

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

memberikan jawaban yang benar untuk semua kecuali 16 nilai, yang memberikan kesalahan ± 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

Sebab n<=24, sebagian besar kesalahan ini adalah untuk nilai input dalam interval 10/24<=i/n<=6/24. Ada satu kesalahan lain untuk n==24yang menetes ke bawah n==12, dan satu kesalahan untuk n==192. Kami membohongi kesalahan ini dengan menambahkan atau mengurangi 1estimasi.


1

Mathematica, 904 879 bytes

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/#]]]&

Versi Logic-only -Free Logic-only gratisan :

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

Hampir versi, 60 byte

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

Akurat dalam ± 1


Cukup yakin Anda bisa melakukan jauh lebih baik dari itu dengan membuat daftar secara matematis. Petunjuk: root ke-192.
Digital Trauma

Tidak terlalu. :( Itu memberi 920 ketika 919 untuk input 192.
CalculatorFeline

Jadi ada semacam "Satu Pemformatan Sejati" yang harus digunakan di mana-mana? (Maaf, tapi mengapa hasil editnya?)
CalculatorFeline

@CatsAreFluffy h2 umumnya lebih disukai daripada h1, meskipun tidak semua orang mengikuti aturan itu — pembenaran adalah bahwa h1 harus menjadi hal terbesar pada halaman. Ngomong-ngomong, saya pikir Mathemeatica tidak akan menjadi nama yang buruk untuk bahasa golf baru ...
lirtosiast
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.