日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java - 已知外匯牌價折算匯率

瀏覽:253日期:2023-10-14 13:27:48

問題描述

碰到了一個關于元組的算法問題

請大家?guī)兔纯?能不能給個答案,或者解決思路也行.

謝謝!

三元組(a,b,c)標識a幣種到b幣種的匯率為c,反向亦成立。輸入一堆這樣的三元組,再指定兩個幣種x y,問x->y的匯率是多少?請編程實現(xiàn),并給出時間、空間復雜度。注意:x->y的匯率是唯一的。

問題解答

回答1:

思路:三元組 -> 有向圖 -> 求任兩節(jié)點的路徑 -> 矩陣乘法或Floyd-Warshal。

比如獲取的外匯牌價是:

java - 已知外匯牌價折算匯率

第一行表示,每1元人民幣可以兌換0.116英鎊。每個三元組(c1, c2, r)對應兩條帶權重的邊:c1 -> c2 weighted r和c2 -> c1 weighted 1/r。這些牌價實際上給出一個有向圖:

java - 已知外匯牌價折算匯率

這里假設給出的三元組不會導出矛盾,且有向圖是聯(lián)通的(不會有折算不到的情況)。這個有向圖寫成帶權重的鄰接矩陣就是:

java - 已知外匯牌價折算匯率

矩陣元素A[i,j]表示1單位i幣種可以兌換多少單位的j幣種。矩陣中的零代表目前匯率未知。

矩陣乘法

把矩陣A連乘可以逐步去除這些零元素。但是要把普通矩陣相乘中計算點積的加法替換成“取第一個大于零的數(shù),若沒有則為零”的操作。例如:(1,2,3).(0,3,2) = first_positive(1*0, 2*3, 3*2) = 6。

用“匯率乘法”計算A的乘方,A^k表示最多經過k-1步折算得到的匯率表,一直算到A^k中沒有零停止。如果有n種貨幣,最多計算到A^(n-1)。

A^3:java - 已知外匯牌價折算匯率

觀察A^3的第一行,它是所有貨幣對人民幣的比價。任兩種貨幣的比價就是把它們對人民幣的比價的商。所以其實一開始用A的第一行參加計算就好:A[1] * A * ... * A (最多n-1次),每次進行的是行向量和矩陣的乘法,直到行的所有元素非零結束。這個計算的復雜度是O(n3)。

Floyd-Warshal

調整一下求最短路徑算法Floyd-Warshal中的遞推關系,也可以用于本題的匯率折算。Floyd-Warshal的復雜度是Θ(n3)。所以用矩陣乘法可能會更快一些。

for k from 1 to rows(A) for i from 1 to rows(A)for j from 1 to rows(A) if A[i][j] = 0 then // 貨幣 i, j 通過貨幣 k 折算 A[i][j] <- A[i][k] * A[k][j] end if

兩種算法都需要存儲匯率矩陣,所以的空間復雜度都是Θ(n2)。

回答2:

如果是提供三元組數(shù)組,生成一個計算 x->y 匯率的方式的最優(yōu)解: 有向圖最短路徑算法

如果是每次提供不同的三元組數(shù)組,只需要獲取一個結果就好: 有向圖尋路算法

回答3:

元組可以作為 dict 的 key

>>> ls = [(’人民幣’, ’美元’), (’人民幣’, ’歐元’), (’人民幣’, ’英鎊’)]>>> 匯率表 = dict(zip(ls,(6.,7.,8.))){(’人民幣’, ’美元’): 6.0, (’人民幣’, ’英鎊’): 8.0, (’人民幣’, ’歐元’): 7.0}>>> import pprint>>> pprint.pprint(匯率表,width=10){(’人民幣’, ’歐元’): 7.0, (’人民幣’, ’美元’): 6.0, (’人民幣’, ’英鎊’): 8.0}>>> 匯率表[(’人民幣’, ’美元’)]6.0回答4:

上面的有些算法寫得好復雜,寫個簡單的:

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>typedef struct node{ char *str; /*拼接后的字符串*/ float value; /*匯率值*/}node_t;int main(int argc, char *argv[]){ /*用戶輸入的一序列匯率對應關系*/ static char const *buff[] = {'CNY','GBP','0.116','CNY','RUB','8.406','CNY','AUD','0.184','JPY','RUB','0.5072','USD','EUR', '0.9456'};int npairs = sizeof(buff)/sizeof(buff[0])/3; node_t * buf = calloc(1,npairs*sizeof(node_t)); if(NULL == buf){ printf('calloc is null !n');return(-1); } int i = 0; int j = 0; int len = 0; char tmp[16] = {’0’}; for(i=0;i<npairs*3; i+= 3){memset(tmp,’0’,sizeof(tmp));/*把兩個字符串進行拼接*/snprintf(tmp,16,'%s%s',buff[i],buff[i+1]);len = strlen(tmp);buf[j].str = calloc(1,sizeof(char)*(len+1));if(NULL != buf[j].str){ memmove(buf[j].str,tmp,len); buf[j].value = atof(buff[i+2]); j += 1;} } printf('please input the two node:n'); char input0[8] = {’0’}; char input1[8] = {’0’};scanf('%s%s',input0,input1); char data0[16] = {’0’}; char data1[16] = {’0’}; /*考慮正序和反序*/ snprintf(data0,16,'%s%s',input0,input1); snprintf(data1,16,'%s%s',input1,input0); for(i=0;i<j;++i){/*輪訓匹配*/if((0==strcmp(buf[i].str,data0))){ printf('%s->%s %f n',input0,input1,buf[i].value); break;}if( 0==strcmp(buf[i].str,data1) ){ printf('%s->%s %f n',input1,input0,buf[i].value); break;} } if(i==j){ printf('can not find the pair n');} /* add the free*/ return 0;}

測試結果如下:

[field@learn]$./test_hello please input the two node:CNY GBPCNY->GBP 0.116000 [field@learn]$./test_hello please input the two node:GBP CNYCNY->GBP 0.116000 [field@learn]$

這里利用的是幣種名字的唯一性,兩個幣種拼接在一起必然也是唯一的。

標簽: java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线综合视频| 成人日韩在线观看| 亚洲欧洲一区| 国产精品婷婷| 视频在线不卡免费观看| 久久精品免费看| 日韩天堂在线| 另类国产ts人妖高潮视频| 在线国产精品一区| 亚洲精品激情| 国产精品观看| 日韩欧美另类一区二区| 欧美特黄一级大片| 在线精品视频一区| 久久av网址| 国产麻豆久久| 日本综合视频| 精品一区二区三区中文字幕| 精品久久视频| 999国产精品视频| 免费精品一区| 伊人久久亚洲热| 亚洲精品系列| 免费黄色成人| 日韩不卡在线观看日韩不卡视频| 性一交一乱一区二区洋洋av| 91av一区| 亚洲福利久久| 日韩av一区二区在线影视| 久久亚洲资源中文字| 亚洲v在线看| 日本在线一区二区三区| 亚州av乱码久久精品蜜桃| 亚洲精品日韩久久| 欧美1区2区3| 影音先锋久久| 你懂的网址国产 欧美| 最新日韩欧美| 欧美日韩视频网站| 蜜臀av一区二区在线免费观看 | 日韩精品专区| 日本aⅴ免费视频一区二区三区| 久久影院一区二区三区| 99成人在线| 精品视频99| 欧美自拍一区| 日韩制服丝袜av| 久久人人精品| 黄色在线观看www| 麻豆视频久久| 日本aⅴ亚洲精品中文乱码| 日韩午夜一区| 精品久久免费| 国户精品久久久久久久久久久不卡 | 国产欧美日韩影院| 亚洲午夜一级| 国产一区二区三区探花| 麻豆91精品| 亚洲v天堂v手机在线| 在线精品视频在线观看高清| 中文字幕成在线观看| 亚洲小说春色综合另类电影| 久久精品国内一区二区三区水蜜桃| 久久精品97| 国产日韩中文在线中文字幕| 好看不卡的中文字幕| 999国产精品视频| 精精国产xxxx视频在线野外| 国产videos久久| 国产69精品久久| 麻豆91小视频| 中文字幕人成乱码在线观看| 日韩精品一区二区三区中文字幕| 99在线精品视频在线观看| 黄色av一区| 欧美粗暴jizz性欧美20| 久久视频精品| 亚洲电影在线一区二区三区| 中文字幕成在线观看| 精品视频国产| 老鸭窝亚洲一区二区三区| 亚洲欧美日本国产专区一区| 999精品一区| 99国产精品一区二区| 日韩电影在线视频| 亚洲激情婷婷| 国产精品久久久网站| 高清日韩中文字幕| 日韩专区欧美专区| 日韩久久视频| 国产无遮挡裸体免费久久| 欧美sm一区| 国产精品嫩草影院在线看| 日本aⅴ免费视频一区二区三区| 亚洲综合激情在线| 亚洲精品888| 免费一级欧美片在线观看网站 | 免费国产亚洲视频| 免费观看在线综合色| 美女在线视频一区| 亚洲精品进入| 国产日韩专区| 亚洲性色视频| 欧美www视频在线观看| 日韩精品三级| 日韩精品视频中文字幕| 91精品国产自产在线丝袜啪| 亚洲美女91| 91亚洲国产成人久久精品| 久久精品国产99国产| 国产精品xxx| 国产精品日韩精品在线播放| 免费亚洲婷婷| 97视频热人人精品免费| 亚洲深夜视频| 男人的天堂久久精品| 牛牛精品成人免费视频| 日韩一级精品| 国产亚洲激情| 日韩影院免费视频| 亚洲综合小说| 视频在线在亚洲| 99在线|亚洲一区二区| 久久精品国产亚洲aⅴ| 鲁大师成人一区二区三区| 国产欧美88| 日韩av二区在线播放| 九九在线精品| 日韩精品久久理论片| 91麻豆精品激情在线观看最新 | 日韩精品社区| 欧美日韩 国产精品| 99久久婷婷这里只有精品| 国产探花一区在线观看| 亚洲黄页一区| 精品日韩毛片| 美日韩一区二区三区| 国产在线成人| 深夜福利亚洲| 日韩啪啪电影网| 国产精品一级| 日本亚洲欧洲无免费码在线| 亚洲91精品| 欧美a级一区二区| 亚洲精选av| 国内在线观看一区二区三区 | 青青草国产精品亚洲专区无| 精品美女视频| 日韩国产欧美在线播放| 亚洲一区亚洲| 国产aa精品| 国产精品美女久久久久久不卡| 久热综合在线亚洲精品| 日韩久久视频| 精品一区二区三区中文字幕 | 亚洲va在线| 国产视频一区免费看| 欧美精品一区二区久久| 日本亚州欧洲精品不卡| 精品成人免费一区二区在线播放| 你懂的网址国产 欧美| 天使萌一区二区三区免费观看| 黄色不卡一区| 欧美日韩免费观看一区=区三区| 国产日韩中文在线中文字幕| 亚洲ab电影| 日本精品在线播放| 高清一区二区三区av| 亚洲风情在线资源| 麻豆精品网站| 国产日韩1区| 国产激情在线播放| 亚洲在线免费| 久久亚洲二区| 国产九一精品| 欧美天堂视频| 亚洲免费影院| 国产欧美日韩影院| 亚洲啊v在线| 免费不卡在线视频| 麻豆久久久久久| 欧美日韩一二三四| 日日摸夜夜添夜夜添国产精品| 精品国产不卡| 亚洲精品一区二区妖精| 日韩国产91| 精品一区二区三区中文字幕| av高清不卡| 亚洲自拍另类| 精品一区电影| 久久婷婷丁香| 视频一区二区欧美| 日韩综合一区| 综合视频一区| 精品国产中文字幕第一页 | 99久久亚洲精品蜜臀| 91免费精品国偷自产在线在线| 日韩精品不卡一区二区| 鲁大师影院一区二区三区| 九九99久久精品在免费线bt|