首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把你房子的玻璃窗和铝箔隔开

把你房子的玻璃窗和铝箔隔开
EN

Code Golf用户
提问于 2018-06-11 11:09:36
回答 2查看 910关注 0票数 7

简介:

你的房子玻璃最好的选择是:

  1. 让尽可能少的热量在两个方向(绝缘值Ug)。

(2.让尽可能多的阳光从外面射到内部。)

(3.让尽可能多的光线从外部进入内部。)

我们只关心这个挑战的第一个。

此外,还有不同类型的玻璃改变Ug:普通单杯;普通双玻璃;HR双玻璃;HR+双玻璃;HR++双玻璃;HR+++双玻璃。

高租金玻璃;两层间有空气的普通双层玻璃,但HR在两层之间都有一种稀有气体。

源(虽然对大多数人来说不是很有用,因为它们是荷兰语,但还是添加了它们):与世隔绝省钱什么是HR++玻璃?

挑战:

输入:表示玻璃和窗口箔的字符串(下面解释可能的输入字符串)。

输出:(计算和)输出热转换Ug

这里是一个具有所有玻璃选项和预期输出的表Ug-values:

代码语言:javascript
复制
Glass (optional foil)    Ug-value    Description

|                        5.8         Single-layered regular glass
||                       2.7         Double-layered regular glass
| |                      1.85        HR glass
|+|                      1.45        HR+ glass
|++|                     1.2         HR++ glass
|+++|                    0.7         HR+++ glass
|r                       3.4         Single-layered regular glass with reflective foil
||r                      2.1         Double-layered regular glass with reflective foil
|f                       2.8         Single-layered regular glass with regular window-foil
||f                      2.0         Double-layered regular glass with regular window-foil

|g                       4.35        | with insulating curtain
||g                      2.025       || with insulating curtain
| |g                     1.3875      | | with insulating curtain
|+|g                     1.0875      |+| with insulating curtain
|++|g                    0.9         |++| with insulating curtain
|+++|g                   0.525       |+++| with insulating curtain
|rg                      2.55        |r with insulating curtain
||rg                     1.575       ||r with insulating curtain
|fg                      2.1         |f with insulating curtain
||fg                     1.5         ||f with insulating curtain

/                        8.7         Diagonal |
//                       4.05        Diagonal ||
/ /                      2.775       Diagonal | |
/+/                      2.175       Diagonal |+|
/++/                     1.8         Diagonal |++|
/+++/                    1.05        Diagonal |+++|
/r                       5.1         Diagonal |r
//r                      3.15        Diagonal ||r
/f                       4.2         Diagonal |f
//f                      3.0         Diagonal ||f

/g                       6.525       Diagonal | with insulating curtain
//g                      3.0375      Diagonal || with insulating curtain
/ /g                     2.08125     Diagonal | | with insulating curtain
/+/g                     1.63125     Diagonal |+| with insulating curtain
/++/g                    1.35        Diagonal |++| with insulating curtain
/+++/g                   0.7875      Diagonal |+++| with insulating curtain
/rg                      3.825       Diagonal |r with insulating  curtain
//rg                     2.3625      Diagonal ||r with insulating curtain
/fg                      3.15        Diagonal |f with insulating curtain
//fg                     2.25        Diagonal ||f with insulating curtain

关于值的一些需要注意的事项:前十是所有不同的默认值(摘自两个链接源)。增加一个g (绝缘窗帘)使这个值降低了25%。/ (对角线窗口)使该值增加50%。

挑战规则:

  • 您可以忽略任何浮点精度错误。
  • 您可以使用您的语言的默认十进制输出格式,所以如果3.0作为3输出;或者如果0.90.900.9的形式输出,则无关紧要。
  • 您只需担心上面给出的输入选项。输入任何其他内容都可能导致未定义的行为(奇怪的输出、错误等)。

一般规则:

  • 这是密码-高尔夫,所以最短的答案(以字节为单位)-- wins. --不要让代码-高尔夫语言阻止你用非代码处理语言发布答案。试着为“任意”编程语言提供一个尽可能短的答案。
  • 适用标准规则作为您的答案,因此您可以使用STDIN/STDOUT,函数/方法具有适当的参数和返回类型的完整程序。你说了算。
  • 违约漏洞是禁止的。
  • 如果可能,请为您的代码添加一个带有测试的链接。
  • 另外,请对你的答案作出解释。
EN

回答 2

Code Golf用户

发布于 2018-06-11 12:25:38

Java (JDK 10),110个字节

代码语言:javascript
复制
s->"8%06(*D0t0".charAt(s.split("g")[0].chars().sum()%77%24%13)*(s.charAt(0)%2+2)*(s.endsWith("g")?3:4)/160d

在网上试试!

Credits

票数 2
EN

Code Golf用户

发布于 2018-06-11 15:47:39

Excel & CSV,194个字节

代码语言:javascript
复制
,"=HLOOKUP(SUBSTITUTE(SUBSTITUTE(A1,""g"",),""/"",""|""),2:3,2,)*IF(CODE(A1)=47,1.5,1)*IF(RIGHT(A1,1)=""g"",0.75,1)"
|,||,| |,|+|,|++|,|+++|,|r,||r,|f,||f
5.8,2.7,1.85,1.45,1.2,0.7,3.4,2.1,2.8,2

输入在第一个,n之前输入并保存为CSV。在Excel中打开时,单元格B1将显示结果。

样本使用情况:

代码语言:javascript
复制
/+++/g,"=HLOOKUP(SUBSTITUTE(SUBSTITUTE(A1,""g"",),""/"",""|""),2:3,2,)*IF(CODE(A1)=47,1.5,1)*IF(RIGHT(A1,1)=""g"",0.75,1)"
|,||,| |,|+|,|++|,|+++|,|r,||r,|f,||f
5.8,2.7,1.85,1.45,1.2,0.7,3.4,2.1,2.8,2

开场白为:

代码语言:javascript
复制
/+++/g  0.7875                              
|       ||      | |     |+|     |++|    |+++|   |r      ||r     |f      ||f
5.8     2.7     1.85    1.45    1.2     0.7     3.4     2.1     2.8     2
票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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