作者:sdfqwerwfds | 来源:互联网 | 2023-10-11 10:02
古时算命时,手拿3枚铜钱,摇摇扔一次,记下反正;再摇摇,扔一次,记下反正共6次.在WEB里怎样模拟?1.尽量使模拟接近真实.就用+表示正面;-表示背面.网页中点击一次,显示例如+++,那么
古时算命时,手拿3枚铜钱,摇摇扔一次,记下反正;再摇摇,扔一次,记下反正...共6次.
在WEB里怎样模拟?
1.尽量使模拟接近真实.就用+表示正面;-表示背面.网页中点击一次,显示例如+++,那么将此结果保存到ACCESS数据库中.ACCESS数据库的列有3列(真正的是18列),第一次的结果分别保存在前3列中;第二次保存在第4,5,6列中,....以此类推.
2.WEB里要能同时进行2行的随机显示,ACCESS数据库中的行有2行
也就是说在WEB里,点一下,显示例如+++,
+-+,这时把结果分别保存到,ACCESS数据库中的2行里
我表达的可能不太好,大家可以随时讯问.
54 个解决方案
<%
sub fun
dim s
dim cup
dim cdown
dim i
randomize
for i=1 to 10
if rnd<0.5 then
s=s & "++" & "
" & vbcrlf
cup=cup+1
else
s=s & "--" & "
" & vbcrlf
cdown=cdown+1
end if
next
document.write(s)
end sub
fun
%>
<%
sub fun
dim s
dim cup
dim cdown
dim i
randomize
for i=1 to 10
if rnd<0.5 then
s=s & "++" & "
" & vbcrlf
cup=cup+1
else
s=s & "--" & "
" & vbcrlf
cdown=cdown+1
end if
next
response.write(s)
end sub
fun
%>
晕倒,还有这样的题目
算法上就用随即模拟正反面,每次取3个随即数,然后循环六次输出
<%
sub fun
dim s
dim cup
dim cdown
dim i
randomize
for i=1 to 2
if rnd<0.5 then
s=s & "+++" & "
" & vbcrlf
cup=cup+1
else
s=s & "---" & "
" & vbcrlf
cdown=cdown+1
end if
next
response.write(s)
end sub
fun
%>
------------------------
谢Top
BlueDestiny!
不过我下载在WEB里试了,还不够符合我的要求.
我改了一下,见上面的代码.这样虽能出来,出来的结果挺象回事,但与我原题的要求不符啊
在页面上要求这样的
+++
---
------------------------
<%
sub fun
dim s
dim cup
dim cdown
dim i
randomize
for i=1 to 2
if rnd<0.5 then
s=s & "+" & "
" & vbcrlf
cup=cup+1
else
s=s & "-" & "
" & vbcrlf
cdown=cdown+1
end if
next
response.write(s)
end sub
fun
%>
------------
上面的代码只是一位数的情况
在页面上只能显示
+
-
-------------------
三个铜钱扔正反面一共就2×2×2=8种可能性
依次给8种可能编号 例如
+ + +=0
+ + -=1
类推
- - -=7
获得一个随即 n
m=n mod 8
根据m的值 相应 输出 + - 的值
或者不用 + -代替 用 0 1代替 直接 把m转换成 2进制数字
楼上的你好!
三个铜钱扔正反面一共不是八种,是4种,你想,可能的只是
3正
3反
2正1反
1正2反.
结果就四种,而不是8种,排列顺序前后无所谓的.所以就是4种.
虽然是4种结果,但是 不是每种结果都是 25%的几率。所以真要做这样的系统还是需要考虑8种情况
说说我的思路
1,首先用FLASH制作铜钱的抛出动画,每次抛三枚,每抛完一次让用户选择正反面所组成的集合,例如+-+或者-++等
2,一共抛六次,每次都记录一次到数据库
3,周易中的六爻八卦仅仅看“阳”,这就需要你从六条数组中,找出第一,第二,第三,第四,第五,第六次中“阳”面的个数
4,得到了阳面的个数后就可以组成六爻八卦,然后再根据卦象查询该卦象所对应的解释
5,最后出来结果
楼上的思路也很好.
可我如果想并行预测1000件事呢.我为什么想在WEB里做,就是想并行预测多事件,导入数据库进行分析.
我的想法是,心中想着1000个事件的未来怎样,WEB里有1000行,代表1000个事件,然后,刷新一次IE,出来1000行
+++
+-+
--+
---
...
等,这就代表我对1000件事的第1摇,再接着刷新,...共6次.就完成1000件事的6摇预测了.
之后的分析程序我慢慢搞,关键是模拟这部分要求能必较接近真实.否则就没意义了
模拟部分楼上的已经给了嘛
就是50%概率的随即,rnd<0.5
二进制!
三个铜钱可产生8种排列
你只需用随机数函数产生0-7间的数,转换成二进制数按位确定铜钱的正反面
我做了这个程序了呢。哈哈
http://www.qg108.com/paipan/ly
写错了,应该是http://www.qg108.com/paipan
三个变量,每都个取随机数。所行随机数连成数串就是了!要几次都可以!
两个数组
int[] a={1,2};//用来表示正反面
int[] b={1,2,3};//用来表示三个铜钱
然后random
然后ok
然后, 给分^_^
六爻是吗?这个你等
http://www.china95.net/paipan/liuyao/index.asp
这个有个例子
用3个铜钱算不出变爻
不能套进周易来解释
得用蓍草
说笑了^^
可以的啊,一个铜钱是算不出变卦,三个就可以有四种变化了啊
忘了-_-;
那么依次怎么排?
个人猜测
3反为太阴
2反1正为少阴
3正为太阳
2正1反为少阳
变爻在3反3正上?
也许你的程序是推广一门学问,但如果不能程序产生真正的随机数,那么后果将是灾难性的,你的程序会毁掉这门学问。
不是,三个正是老阳,二反一个正是少阳,三个反是老阴,一个反是少阴
弄六次,作六爻,两卦,上下各三爻。
这是本卦。
变卦就把,老阳,老阴,变成相反,就是变卦。
所以,如果你摆出来的卦全部是老阳或老阴,这就出大事了。
计算机随机本来就不现实的,随机也是看,随机事件触发时的时间的。
做个输入结果的部分,直接把结果存进数据库,然后.....
铜钱自备~! :)
我觉得不用
其实每个铜钱出现的几率都是随机的
+++
---
一样真实可信
所以只要模拟出一个就可以了,把这一个铜钱扔三次,也是真实的
计算机上的随机数都是伪随机数,都是计算出来的。。。
用来算,肯定不准
还是用孔林里的草吧
3个铜板为什么不是4次结果呢?
3正,3反,1正2反,2正1反……还有什么结果?
感动!我非常的感动!祝所有回贴的人大吉大利!几天没来,这么多热心人给回贴.待我慢慢看,先顶一顶
function Gamble()
dim strTmp,i
randomize cint(now()*1000)
strTmp=""
for i=1 to 3
if round(rnd())=0 then
strTmp=strTmp&"+"
else
strTmp=strTmp&"-"
end if
next
Gamble=strTmp
end function