日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【算法学习】枚举与剪枝(一)

發布時間:2024/9/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法学习】枚举与剪枝(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

namespace?枚舉與枝剪 {/*?????*?要找8元錢?????*?有5元、2元、1元、5角?????*?求所有解決方案?????*/????class?Program????{static?void?Main(string[]?args){//初始化,由于其中涉及到浮點運算,所以每位*10????????????int?total?=?80;//80角????????????int?_50?=?50;int?_20?=?20;int?_10?=?10;int?_5?=?5;//50角,最少0張?最多80/50????????????for?(int?a?=?0;?a?<=?total?/?_50;?a++){for?(int?b?=?0;?b?<=?total?/_20;?b++){for?(int?c?=?0;?c?<=?total?/?_10;?c++){for?(int?d?=?0;?d?<=?total?/?_5;?d++){if?(a?*?_50?+?b?*?_20?+?c?*?_10?+?d?*?_5?==?total){Console.WriteLine("5元="?+?a?+?",2元="?+?b?+?",1元="?+?c?+?",5角="?+?d);}}}}Console.ReadLine();}}} }

以上算法未用到“枝剪”,如果運算的數字大一些,例如:800元,十幾種零鈔,這樣計算機就吃不消了,大概要運算一年,因為以上考慮了太多沒有意義的數據。例如:取了一張5元面值,不可能取足2張2元。“枝剪”就是去除這種過多的考慮,來增加運算效率

以下是用到“枝剪”的算法:

//初始化,由于其中涉及到浮點運算,所以每位*10????????????int?total?=?80;//80角????????????int?_50?=?50;int?_20?=?20;int?_10?=?10;int?_5?=?5;//50角,最少0張?最多80/50????????????for?(int?a?=?0;?a?<=?total?/?_50;?a++){for?(int?b?=?0;?b?<=?total?/_20;?b++){//枝剪二:過濾非法情況,有可能ab取得過大的值,如果這個名額<0,就沒有名額給下面分配了??if?((total?-?a?*?50)?<?0){break;}for?(int?c?=?0;?c?<=?total?/?_10;?c++){//枝剪三if?((total?-?(a?*?_50?+?b?*?_20?+?c?*?_10))?<?0){break;}//前面的幾種零鈔,一共用掉了多少名額,剩下算出d????????????????????????int?d?=?total?-?(a?*?_50?+?b?*?_20?+?c?*?_10)?/?_5;//枝剪一:d值根本不用算,因為可以用abc來求出????????????????????????//for?(int?d?=?0;?d?<=?total?/?_5;?d++)????????????????????????//{????????????????????????????if?(a?*?_50?+?b?*?_20?+?c?*?_10?+?d?*?_5?==?total){Console.WriteLine("5元="?+?a?+?",2元="?+?b?+?",1元="?+?c?+?",5角="?+?d);}//}????????????????????}}Console.ReadLine();}

雖然更加混亂、難懂;但是運算速度和效率更快了

轉載于:https://my.oschina.net/duansheli/blog/260867

總結

以上是生活随笔為你收集整理的【算法学习】枚举与剪枝(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。