一个比较难的算法,求大神演绎,最好是C++或者C#语言。

审什 2012-08-23 09:33:50
遇到这个问题 有没有大神遇到过解决的 求算法
有这样一个算法 规定一个总价,然后从N本书中选择任意本书等于这个总价。不用2的N次方穷举的算法,谢谢。 1 分钟前 提问者: 审什 | 悬赏分:10 | 浏览次数:2次
问题补充:

数学上这个是组合即从CN0 CN1 CN2 ...一直到CNN一共是2的N次方个方案,从中选择等于那个总价的方案然后列出。求数据结构与算法大神演绎较好的算法,若满意,加分送上。
...全文
204 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
审什 2012-08-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

开始想和lz说说动态规划,不过后来……

lz您还是先看看C#语法吧。
[/Quote]

好打击我啊 楼上的 不过也是 我刚学习C#时间不到20天,现在就只能写一些简单的小应用了,而且基本还都是面相结构那种,很少写类,领导都批评我好几次了,要转变思想,封装 多态什么的 都不用可不行
iyomumx 2012-08-23
  • 打赏
  • 举报
回复
用正则表达式随手写个

int[] items = new int[]{ 10, 13, 15, 25, 39, 47, 69};
int N = items.Length;
int sum = 100; //总价
string source = new string('1', sum);
string regex = string.Format("^{0}$", string.Join("", items.Select(x => string.Format("(1{{{0}}})?", x)).ToArray()));
Regex r = new Regex(regex);
Match m = r.Match(source);
if (m.Success)
{
Console.WriteLine("Result: {0}", string.Join(",", Enumerable.Range(1, N).Where(x=> m.Groups[x].Success).Select(x => m.Groups[x].Value.Length.ToString()).ToArray()));
}
else
{
Console.WriteLine("No Result");
}
审什 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
标准的“背包问题”,自己搜去吧,网上相关的资料一大堆。
[/Quote]

你好,这个是最优解,如果是确定的解有没有不通过所有遍历的算法,你说的很对,如果没有准确算法我选你标准答案。
审什 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
标准的“背包问题”,自己搜去吧,网上相关的资料一大堆。
[/Quote]

你好,这个是最优解,如果是确定的解有没有不通过所有遍历的算法,你说的很对,如果没有准确算法我选你标准答案。
cheng2005 2012-08-23
  • 打赏
  • 举报
回复
标准的“背包问题”,自己搜去吧,网上相关的资料一大堆。
threenewbee 2012-08-23
  • 打赏
  • 举报
回复
开始想和lz说说动态规划,不过后来……

lz您还是先看看C#语法吧。
iyomumx 2012-08-23
  • 打赏
  • 举报
回复
正则表达式不是用来设计算法的……
真要学的话,网上有“正则表达式30分钟入门教程”,保守估计一天就能学会。
正则表达式相关类在System.Text.RegularExpression里
审什 2012-08-23
  • 打赏
  • 举报
回复
楼主也可以用个TRY CATCH啊 当输入错误的时候可以提示报错,当然这样效果肯定没有先判断的好,不过可以应付一些小项目的。
审什 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
用正则表达式随手写个

C# code

int[] items = new int[]{ 10, 13, 15, 25, 39, 47, 69};
int N = items.Length;
int sum = 100; //总价
string source = new string('……
[/Quote]

求大神讲解正则表达式在C#算法设计上优势与不足,以及学习它要看什么书投入多少时间。最后问下大神使用它的时候要在程序开头 USING什么东西 谢谢

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧