【小伟哥游戏之路】Java与Python实现seed()随机数序列同步问题的解决方案

先看实例,沾沾自喜得意洋洋的时候。

自己在测试过程中遇到个坑,这点需要注意。

在处理游戏战斗过程中解决服务器端与客户端同步问题的帖子

【小伟哥游戏之路】游戏中战斗回放与离线回放的实现机制总结

写完后,自己有所担心是否有遗漏的地方。哪里肯定会出问题,不能迷惑大家和以后的自己。

先看实例 Java实现过程

package yangww;
import java.util.Random;

public class RandomTest {

	public static void main(String[] args) {

		// java.util.Random 随机化的种子(seed) 的使用
		long seed = 123456;
		System.out.println("测试随机种子数据");
		
		Random random = new Random(seed);
		for (int i = 0; i < 10; i++) {
			System.out.print(random.nextInt(100) + " ");
		}
		
		System.out.println("\n\n重新根据seed进行随机");
		Random randomNew = new Random(seed);
		for (int i = 0; i < 10; i++) {
			System.out.print(randomNew.nextInt(100) + " ");
		}
	}
}

输出结果

测试随机种子数据
23 47 67 85 38 83 97 96 4 7 

重新根据seed进行随机
23 47 67 85 38 83 97 96 4 7 

再看python2.7环境实现过程

import random
random.seed(123456)

for i in range(1, 10):
  print(random.randint(1, 100))

输出结果

81 80 3 18 1 67 8 27 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python中的随机数生成器模块random能够生成伪随机数序列。要生成一个二进制的随机数序列,可以通过将随机生成的整数换为二进制表示来实现。 首先,我们需要导入random模块: ``` import random ``` 接下来,我们可以使用random.randint函数来生成一个指定范围内的随机整数。例如,要生成一个0到1之间的随机数: ``` random_number = random.randint(0, 1) ``` 然后,我们可以使用bin函数将随机生成的整数换为二进制字符串: ``` binary_number = bin(random_number)[2:] ``` 通过将上述过程封装在一个循环中,我们可以生成一个二进制随机数序列。下面是一个生成长度为n的二进制随机数序列的例子: ``` import random def generate_random_binary_sequence(n): binary_sequence = "" for _ in range(n): random_number = random.randint(0, 1) binary_number = bin(random_number)[2:] binary_sequence += binary_number return binary_sequence ``` 注意,使用随机数生成器生成的数列是伪随机的,并不能完全符合真正的随机性。因此,在需要进行安全敏感的应用中,需要使用更强的随机数生成器模块,如random模块中的os.urandom函数。 ### 回答2: Python中可以使用`random`模块生成二进制的随机数序列。首先,需要引入`random`模块,然后使用`random.getrandbits()`函数来生成随机的二进制数序列。 `random.getrandbits()`函数的参数指定了需要生成的随机位数。例如,如果想要生成10位二进制的随机数,可以使用`random.getrandbits(10)`。 在生成二进制随机数序列之前,需要根据任务的需求确定所需的位数。然后,使用循环语句来生成序列,并将每个生成的二进制数存储在一个列表中。 以下是一个示例代码: ```python import random num_of_bits = 10 # 需要生成的二进制随机数位数 sequence_length = 5 # 需要生成的随机数序列长度 binary_sequence = [] # 存储二进制数序列的列表 for _ in range(sequence_length): binary_num = bin(random.getrandbits(num_of_bits))[2:] # 生成随机的二进制数,并换为字符串 binary_sequence.append(binary_num) # 将生成的二进制数加入列表 print(binary_sequence) ``` 运行以上代码,将生成一个包含5个长度为10的二进制随机数序列,例如:['1100110110', '1010111100', '1001001010', '1110001011', '1001111001']。 以上就是使用Python生成二进制随机数序列的方法。根据具体需求,可以调整位数和序列长度来生成不同的二进制随机数序列。 ### 回答3: Python中可以使用`random`模块配合`bin()`函数生成二进制随机数序列。 首先,需要导入`random`模块。 ```python import random ``` 然后,可以使用`random.randint()`函数生成随机整数,并使用`bin()`函数将其换为二进制。`bin()`函数返回的是一个字符串,需要使用`str()`函数将其换为字符串类型。 ```python random_num = random.randint(0, 15) # 生成0到15之间的随机整数 bin_num = bin(random_num) # 将随机整数换为二进制字符串 bin_str = str(bin_num) # 将二进制字符串换为字符串类型 ``` 如果要生成多个二进制随机数,可以使用循环。 ```python binary_sequence = [] # 创建一个空列表用于存储二进制随机数序列 for i in range(10): # 生成10个随机数 random_num = random.randint(0, 15) # 生成0到15之间的随机整数 bin_num = bin(random_num) # 将随机整数换为二进制字符串 bin_str = str(bin_num) # 将二进制字符串换为字符串类型 binary_sequence.append(bin_str) # 将二进制字符串添加到序列中 ``` 以上代码会生成一个包含10个二进制随机数序列`binary_sequence`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值