新手请教一个问题
construct2吧
全部回复
仅看楼主
level 11
伪善的骁
楼主
刚刚开始学习,很多很基础的地方还不怎么懂,见谅。
假设有XY两个变量,要先后从1到9这九个数字中随机取值,请问如何做到当X取值后,将X的值从取值范围中去除,
也就是说假如当X取了“2”,如何做到Y只从13456789取值呢?
我自己并不是学编程的,水平有限,琢磨了四五天也没试成功,请老师指点迷津。
X=random(1,9)
Y=?
2015年09月09日 13点09分
1
level 3
我要带上面具
2015年09月09日 14点09分
2
伪善的骁
本来想尽量不用while循环的,但是试了好久都没成功,最后还是用了您提供的方法,这问题卡了我好久了,能解决多亏您提醒,多谢。
2015年09月10日 15点09分
我要带上面具
回复
α�Ƶ���
:兄弟,虽然执着是件好事,但你因为纠结着而浪费这么多时间,效率会很低哦
2015年09月11日 02点09分
伪善的骁
回复
��Ҫ��������
:受教了
2015年09月11日 08点09分
level 5
windy0704
如果判断一次,这样就行了。
如果判断多次,也就是说,第一次x是2,然后y不能取2;第二次x是4,然后y不能取2或者4;第三次x是7,然后y不能取2,4或者7,就要用另外的方法了。
2015年09月10日 01点09分
3
伪善的骁
您好,多谢您的回复,给了我很大帮助,但是还要打搅您一下,只需判断一次,您的方法的确很有效,但是经过试验,当X随机取值为9,也就是最大值时,Y依旧有几率会取到同样的数字,我想不到什么好办法,还望您赐教
2015年09月10日 13点09分
伪善的骁
回复
α�Ƶ���
:貌似是进位的问题?当取整使用round时会出现同时取最大值9的现象。当取整使用INt时会出现同时取最小值1的情况
2015年09月10日 13点09分
伪善的骁
已经解决了,最后还是用了while,稍微多占了几行代码,总之还是多谢了。
2015年09月10日 15点09分
level 13
totoyan72021
提醒一个:random(0,9)只随机0~8,而且包括小数,
2015年09月10日 01点09分
4
level 6
某愿朝闻道
数组存1-9的9个数字
然后
y = 数组随机(0-8的索引)数字
假设结果是 y = 数组(7)
之后将 数组(7)的值与数组(8)交换
然后x = 数组随机(0-7)的索引
2015年09月10日 02点09分
5
level 11
伪善的骁
楼主
我之前是这么做的,今天下班后我会按照楼上几位的建议尝试修改一下。
如果有什么地方还有弊端,还请指出,多谢了。
2015年09月10日 05点09分
6
level 13
傅老師_台灣
用
@rexrainbow
<PatternGen>插件。插件Mode参数设为Shuffle时骰后不放回。设为Shuffle w/o restart时取完不重置。
2015年09月11日 11点09分
7
伪善的骁
多谢傅老师,另外头像风格变化好大
2015年09月13日 03点09分
1