1
qyvlik 2019-10-30 20:36:36 +08:00 via Android
BTC-ETH,的计价币种是 ETH,所以(BTC-USDT)/(ETH-USDT)=50,意思是花 50ETH 可以买入 1BTC,1BTC 的价格是 50ETH。如果你问 BTC-ETH 的价格,反过来除就行了。
|
2
lawsiki OP @qyvlik #1 #1 抱歉、忽略了一个东西,还有一个汇率是 DEF_ABC:7,求 DEF -- CNY 的汇率,大致算法我知道,通过 DEF_ABC 和 ABC_USDT 得到 DEF_USDT 的汇率是 14,再通过 CNY_USDT 的汇率得到 DEF_CNY 的汇率是 100,但是具体实现方式不知道怎么写。。
|
5
qyvlik 2019-10-30 21:01:37 +08:00 via Android
@lawsiki 再问一句,你是否需要针对这个问题的通用版本,也就是给定多个汇率,求任意折算汇率,写出通用代码?
|
6
geelaw 2019-10-30 21:03:06 +08:00 via iPhone 2
如果 A-B 的汇率是 v,则建立 a->b 权为 log v 的边,以及 b->a 权为 -log v 的边。
C-D 的汇率是 exp(C 到 D 的路径长度)。 如果不存在路径,则说明条件无法决定目标汇率,如果存在多个不同长度,说明市场存在无风险套利(假设无摩擦)。 |
7
sagaxu 2019-10-30 21:04:10 +08:00 via Android
广度优先搜索
|
8
lawsiki OP @qyvlik #5 #5 是的,给定任意两个货币,求折算汇率,当然如果给定的汇率表中没有关联关系的话可以返回 null
|
11
qyvlik 2019-10-30 21:06:15 +08:00 via Android
@lawsiki 其他楼层给出答案了,折算汇率,用图+图的遍历可以做,例如 btc-eth 是边。btc 和 eth 是两个顶点。
|
12
Building 2019-10-30 21:07:59 +08:00 via iPhone
a/b = k1, c/b = k2, a = b•k1, k3 = c/a = c/b•k1;
|