游戏开发论坛

 找回密码
 立即注册
搜索
楼主: passiongame

一个并不复杂的问题,但是我想不出一个高效的算法

[复制链接]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-1-19 13:40:00 | 显示全部楼层

Re:一个并不复杂的问题,但是我想不出一个高效的算法,

-。- 我少算了一个1,应该是10 - a + rand() % a

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2005-1-19 13:47:00 | 显示全部楼层

Re: Re:一个并不复杂的问题,但是我想不出一个高效的算

我的思路也是这样。这问题其实换句话讲就是求两个随机数,这?z随机数的和小于19。

tarkey: Re:一个并不复杂的问题,但是我想不出一个高效的算法,请各位达人都来看看!!!!

int a = rand() % 19;
int b = rand() % ( 19 - a );
int c = 19 - a - b;

8

主题

111

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2005-1-19 13:52:00 | 显示全部楼层

Re:一个并不复杂的问题,但是我想不出一个高效的算法,

15楼的方法不通用,只对19这一个数字有效.

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2005-1-19 13:58:00 | 显示全部楼层

Re:一个并不复杂的问题,但是我想不出一个高效的算法,

这是咋回事?

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2005-1-19 13:59:00 | 显示全部楼层

成骑士了

2

主题

21

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2005-1-19 14:24:00 | 显示全部楼层

Re:一个并不复杂的问题,但是我想不出一个高效的算法,

感谢tarkey和其他的热心朋友!!!!!!!

2

主题

21

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2005-1-19 14:28:00 | 显示全部楼层

Re: Re:一个并不复杂的问题,但是我想不出一个高效的算

ixnehc: Re:一个并不复杂的问题,但是我想不出一个高效的算法,请各位达人都来看看!!!!

15楼的方法不通用,只对19这一个数字有效.

是啊。我的需要14到19这几个数的算法。那位能搞一个通用的算法阿。

8

主题

111

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2005-1-19 15:11:00 | 显示全部楼层

Re:一个并不复杂的问题,但是我想不出一个高效的算法,

设有n个数,总和为total,则最大的值记为a[n],次大的值记为a[n-1],依次类推,最小的值记为a[1]

int a[n];
int sum;
sum=0;
for (i=n;i>1;i--)
{
    a=rand_inclusive((total-sum-1)/i+1,min(9,total-sum-(i-1)));
    sum+=a;
}
a[1]=total-sum;


也许有bugs,不过应该是通用的方法.

2

主题

21

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2005-1-19 15:39:00 | 显示全部楼层

Re:一个并不复杂的问题,但是我想不出一个高效的算法

请问ixnehc你的rand_inclusive(a,b)意思是在a.b之间求随机吗

2

主题

21

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2005-1-19 16:00:00 | 显示全部楼层

Re:一个并不复杂的问题,但是我想不出一个高效的算法

ixnehc你的算法的确很强,我基本上明白了。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-24 03:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表