Skip to content

Latest commit

 

History

History
70 lines (43 loc) · 3.56 KB

20250104.md

File metadata and controls

70 lines (43 loc) · 3.56 KB

一些习题

1

有机物的命名有一套完整的规则。以下是烃的部分命名规则:

  1. 甲烷到癸烷的名称分别为:methane ethane propane butane pentane hexane heptane octane nonane decane
  2. 烷基的名称是将对应烷烃词尾的 ane 替换为 yl。同理,烯烃替换成 ane,炔烃替换成 yne,烯基替换成 enyl,炔基替换成 ynyl。例如:乙基 ethyl,乙烯 ethene,乙炔 ethyne,乙烯基 ethenyl,乙炔基 ethynyl
  3. 苯,萘,蒽,菲的名称分别为:benzene, naphthalene, anthracene, phenanthrene。例如,甲基乙苯 methylethylbenzene,9-甲基菲 9-methylphenanthrene
  4. “环”用 cyclo 开头,例如:环丙烷 cyclopropane, 环丁烷 cyclobutane
  5. 标识取代基个数的“二 三 四 五 六”分别用 ditritetrapentahexa 开头。例如:1-2-3-三甲苯 1,2,3-trimethylbenzene

设计程序,输入有机物名称,输出其碳原子和氢原子个数。例:输入 2,3,5-trimethyl-4-propyloctane,输出 14 30

保证有机物名称满足上述规则。保证字符串长度小于 64。

2

甲乙两人赌博,约定先赢满 n 局者可获得 2147483648 元赌金。已知每局两人输赢概率均为 0.5,且每局输赢独立。如今当甲已经赢 $n_1$ 局,乙已经赢 $n_2$ 局时,因事无法继续赌博,因此他们决定计算两人在此条件下获胜的概率,以此分配赌金。设计程序,输入 n,$n_1$ 和 $n_2$,输出甲应得的赌金数额。

对于所有输入,保证 $2n-n_1-n_2<33$,以确保甲获得的赌金为整数。

例:输入 4 2 1,输出 1476395008

3

根据狭义相对论,若物质静止时质量 m,则其在速度 v 时的相对论质量为 $$M=\frac{m}{\sqrt{1-\frac{v^2}{c^2}}}$$ 其中 c 为光速,取 $299792458 m/s$

动能公式为 $$E_k=(M-m)c^2$$

设计程序,输入 m 和 v,输出其在速度 v 时的动能。

4

$L^AT_EX$ 中,用符号 \frac{ 分子 }{ 分母 } 表示分数,可套用。如 \frac{1}{\frac{1}{2}} 表示 $\frac{1}{\frac{1}{2}}=2$

设计程序,输入只含分数且分子分母均为整数的 $L^AT_EX$ 字符串,输出分子和分母。

保证字符串长度小于 256。

例:输入 \frac{\frac{3}{4}}{\frac{5}{2}},输出 3 10

5

实现函数 char* replace(const char* s, const char* from, const char* to),将字符串 s 中所有出现的子串 from 替换为 to。返回的 char* 需用户自行释放。

6

实现 time_duration 结构体,并实现以下内容:

  • struct time_duration duration(time_t, time_t)
  • time_t post(time_t, const struct time_duration *)
  • time_t pre(time_t, cosnt struct time_duration *)
  • time_duration 之间的加法和减法;
  • time_durationint 之间的乘法;

7

某游戏抽卡机制如下:

  1. 每次抽卡分为 不中 两种情况;
  2. 不中 概率由计数器决定:初始时计数器重置为 1;若此次抽卡 ,则计数器重置为 1;若此次抽卡 不中,则计数器加 1;
  3. 当计数器的值小等于 73 时,本次抽卡中的概率为 0.6%;否则,概率为 $$0.6%+\frac{计数-73}{17}\times99.4%$$
  4. 卡分限定卡和常驻卡两种。当某次抽卡 时:若上次抽中的卡为常驻卡,则本次必定抽中限定卡;否则,有 50% 的概率抽中限定卡,50% 的概率抽中常驻卡。

设计程序,输入抽卡次数 m 和目标限定卡数量 n,输出抽到目标限定卡的概率。