Tạo chuỗi số E ưa thích


8

Điện trở và linh kiện điện tử khác thường được sản xuất với giá trị phù hợp với một trong những E-series của số ưa thích . IEC 60063 định nghĩa E-series sau:

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 464 487 511 536 562 590 619 649 681 715 750 787 825 866 909 953

E96:

100 102 105 107 110 113 115 118 121 124 127 130 133 137 140 143 147 150 154 158 162 165 169 174 178 182 187 191 196 200 205 210 215 221 226 232 237 243 249 255 261 267 274 280 287 294 301 309 316 324 332 340 348

E192:

100 101 102 104 105 106 107 109 110 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 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 294 294 298 301 305 309 312 320 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 438 448 453 459 464 470 475 481 487 493 499 505 511 517 523 530 536 542 549 556 562 569 576 583 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

Cho một số nguyên đầu vào từ tập hợp {6, 12, 24, 48, 96, 192}, xuất ra chuỗi E tương ứng, theo thứ tự, chứa chính xác các số như được hiển thị ở trên cho chuỗi đã cho.

  • Đầu ra có thể ở bất kỳ định dạng nào của danh sách, mảng, vv phù hợp với ngôn ngữ của bạn.
  • Số nguyên 10 chỉ.
  • nội dung thực hiện cụ thể các chuỗi này không được phép.

Câu trả lời:


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

Các giá trị đầu ra được chia tỷ lệ từ 1 đến 10 được xấp xỉ bằng một phép nội suy theo cấp số nhân:

10**(i/n)

Nhân với 10 cho 6, 12, 24và 100 để 48, 96, 192làm tròn đến số nguyên gần nhất

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

đưa ra câu trả lời đúng cho tất cả trừ 16 giá trị, đưa ra sai số là 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

Đối với n<=24, hầu hết các lỗi này là cho các giá trị đầu vào trong khoảng 10/24<=i/n<=6/24. Có một lỗi khác cho n==24các mẹo nhỏ đó n==12và một lỗi cho n==192. Chúng tôi loại bỏ các lỗi này bằng cách thêm hoặc bớt 1vào ước tính.


1

Toán học, 904 879 byte

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

Ungolfed Massive-list-free phiên bản chỉ logic :

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

Hầu hết phiên bản, 60 byte

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

Chính xác trong vòng 1


Khá chắc chắn rằng bạn có thể làm tốt hơn thế nhiều bằng cách tạo ra danh sách toán học. Gợi ý: gốc thứ 192 của 10.
Chấn thương kỹ thuật số

Không hẳn. :( Điều đó mang lại cho 920 khi nó là 919 cho đầu vào 192.
Máy

Vì vậy, có một số loại "Định dạng đúng" phải được sử dụng ở mọi nơi? (Xin lỗi, nhưng tại sao phải chỉnh sửa?)
CalculatorFeline

@CatsAreFluffy h2 thường được ưa thích hơn h1, mặc dù không phải ai cũng tuân theo quy tắc đó. Biện minh là h1 nên là điều lớn nhất trên một trang. Nhân tiện, tôi nghĩ Mathemeatica sẽ không phải là một tên xấu cho một ngôn ngữ chơi gôn mới ...
lirtosiast
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.