【发布时间】:2013-08-06 08:36:47
【问题描述】:
对不起,如果我的标题不够清楚。我举个例子。我们的函数是这样的:
C:
int main()
{
for(i=0;i<10;i++)
{
printf("%d",func(i));
}
}
int func(int b)
{
if(b>=0 && b<7)
return 70;
else
return 30;
}
当 'b' 为 'rand() % 10' 时,此函数 (b) 将以 70% 的可能性返回 70,并以 30% 的可能性返回 30。但是,必须有一个更实用的方法。如果“那种方式”存在,我在 C(也可以是 C++)和 AS3 中都需要它。感谢您的回复。
我刚刚有时间登录并查看回复。你玩过 paradox interactive 的游戏吗?喜欢欧陆风云3?在那个游戏中有很多不同的随机化算法。例如,每个都有 1/3 的可能性,你可以得到好东西,什么都没有或坏东西。我想开发一个必须具有类似随机化算法的游戏。我想要一个函数获取阈值 0 和 1 之间的输入,并返回一个预定义的结果,或者我可以使用一个简单的 switch 语句来触发该结果的值
类似这样的:
在 AS3 中:
Function randomize(poss:Number):function //here i may need to have more consequences than two. poss value can be an array instead of being a number.
{
Number a = Math.random()
If(a>poss)
Return func1;
Else
Return func2;
}
这里 func1 和 func2 是具有相同输入类型但任务不同的函数对象,我将像这样使用返回的函数:
Function onClick(evt:Event):void
{
var randFunction:Function=new Function();
randFunction = randomize(0.35);
randFunction();
}
但是,我不想在每个需要“加权可能性”的情况下都硬编码,比如这个实例。
P.S:我不想让你为我编写代码,但对如何解释 C 和 AS3 中的加权可能性有一些很好的想法。如果你不打算贡献,那么就不要回复。
【问题讨论】:
-
如果您要求我们为您编写代码,那将不会发生。
-
如果你想要随机行为,那么
rand是在 C 中使用的函数。 -
为什么在 C 和 AS3 中都需要这么奇怪的函数?你真正想达到什么目标?
标签: c actionscript-3 function random return