首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用哪个插座?

我可以用哪个插座?
EN

Code Golf用户
提问于 2021-03-27 03:22:06
回答 1查看 611关注 0票数 12

在北美,大多数插座/插座都遵循NEMA制定的标准。对于这一挑战,您将获得需要插入的设备的一些属性,您的程序(或功能)应该返回所有兼容的插座。

针对这一挑战,插座有三个特性:电压、电流额定值和接地。

I/O:

输入将包括一个电压,电流使用,和一些设备的接地要求。前两个是正整数,第三个可以用布尔值表示(尽管允许以任何合理的方式表示它)。

输出应该是符合以下规则的兼容的插座列表。每个插座的名称都被格式化为NN-nnNNnn是数字。所有的出口都应该返回为带有这种格式的字符串,或者是[NN, nn]数组。可以在数组中返回兼容的出口,也可以用空格/换行符/逗号分隔,也可以通过任何其他合理的方法进行分隔。

需求:

为了使插座与输入设备兼容,它必须满足以下三项要求:

  • 电压应在器件电压的±10%以内
  • 当前的额定值至少应该与设备当前的使用率一样高。
  • 如果该设备需要接地插座,则该插座必须接地(否则可以接地,也可以不接地)

网点:

这些是您的程序必须能够处理的插座:

代码语言:javascript
复制
1-15     120    15     
2-15     240    15     
2-20     240    20     
2-30     240    30     
5-15     120    15    G
5-20     120    20    G
5-30     120    30    G
6-15     240    15    G
6-20     240    20    G
6-30     240    30    G
6-50     240    50    G
7-15     277    15    G
7-20     277    20    G
7-30     277    30    G
7-50     277    50    G
10-30    240    30     
10-50    240    50     
11-20    240    20     
11-30    240    30     
11-50    240    50     
12-20    480    20     
14-15    240    15    G
14-30    240    30    G
14-50    240    50    G
14-60    240    60    G

第一列是插座的名称,然后是电压,然后是电流额定值,然后是G (如果接地)。其中有些可能有点不准确。

测试用例:

用电压格式化,然后使用电流,然后用G表示接地,x表示不接地。有些没有兼容的插座。

代码语言:javascript
复制
120    16    G    5-20, 5-30
260    5     x    2-15, 2-20, 2-30, 6-15, 6-20, 6-30, 6-50, 7-15, 7-20, 7-30, 7-50, 10-30, 10-50, 11-20, 11-30, 11-50, 14-15, 14-30, 14-50, 14-60
260    5     G    6-15, 6-20, 6-30, 6-50, 7-15, 7-20, 7-30, 7-50, 14-15, 14-30, 14-50, 14-60
260    35    x    6-50, 7-50, 10-50, 11-50, 14-50, 14-60
480    10    x    12-20
108    10    x    1-15, 5-15, 5-20, 5-30
528    20    x    12-20
249    50    G    6-50, 14-50, 14-60
250    50    G    6-50, 7-50, 14-50, 14-60
304    10    x    7-15, 7-20, 7-30, 7-50
480    10    G    
480    25    x
400    10    x
600    10    x
180    10    x
80     10    x    

其他:

这是密码-高尔夫,所以每种语言的最短答案(以字节为单位)获胜!

EN

回答 1

Code Golf用户

发布于 2021-03-27 14:26:10

Excel,220个字节

此公式的135个字节。

代码语言:javascript
复制
=LET(f,B1:J1*B2:J6,r,A2:A6,v,XLOOKUP(f,L1:L4,M1:M4,240),TEXTJOIN(",",,IF((ABS(A8-v)<=v/10)*(B8<=r)*((MOD(f,10)>3)+1-C8)*f,f&"-"&r,"")))

这个单元格数组的68个字节,显示破折号前后的有效数字对。

代码语言:javascript
复制
    1   2   5   6   7   10  11  12  14
15  1   1   1   1   1   0   0   0   0
20  0   1   1   1   1   0   1   1   1
30  0   1   1   1   1   1   1   0   1
50  0   0   0   1   1   1   1   0   1
60  0   0   0   0   0   0   0   0   1

这个单元格数组的字节,它将破折号前的数字映射到240以外的电压。

代码语言:javascript
复制
 1 120
 5 120
 7 277
12 480
票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/222445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档