Python 生成随机数

14 篇文章 0 订阅
此博客介绍了如何在SPDPZ(Secure Parallel Distributed Computing)环境中生成随机数,针对整数和浮点数类型,按照指定数据量分发给两个参与方。它详细说明了如何通过Python脚本实现数据的生成并分别写入'Input-P0-'和'Input-P1-'系列文件中。
摘要由CSDN通过智能技术生成

生成指定文件名的随机数

# 生成随机数 
# 指定数据类型:整数(1--100000)、浮点数(五位小数,1--100)
# 指定数据量
# 指定文件名
import random,sys

l = len(sys.argv)
if(l == 4):
    form = sys.argv[1]
    filename = sys.argv[3]
    if(form == "int"):
        n = int(sys.argv[2])
        fp = open(filename,"w")
        for i in range(n-1):
            a = random.randint(1,100000)
            fp.write(str(a)+' ')
        a = random.randint(1,100000)
        fp.write(str(a))
        fp.close()
        print("Success !!")
    elif(form == "float"):
        n = int(sys.argv[2])
        fp = open(filename,"w")
        for i in range(n-1):
            a = round(random.uniform(1.0,100.0),5)
            fp.write(str(a)+' ')
        a = round(random.uniform(1.0,100.0),5)
        fp.write(str(a))
        fp.close()
        print("Success !!")
    else:
        print("Error!!")
else:
    print("Error!!")
    print("Usage: python datagen.py int/float DataNumber filename")

针对spdz,生成随机数到Input-P*-* 。

# 生成随机数 ,只针对两方的数据生成
# 指定数据类型:整数(1--100000)、浮点数(五位小数,1--100)
# 指定数据量
# 指定线程数量

import random,sys

l = len(sys.argv)
if(l == 4):
    form = sys.argv[1]
    threadnum = int(sys.argv[3])
    for tn in range(threadnum+1):
        filename0 = "Input-P0-"+str(tn)
        filename1 = "Input-P1-"+str(tn)
        if(form == "int"):
            n = int(sys.argv[2])
            fp = open(filename0,"w")
            for i in range(n-1):
                a = random.randint(1,100000)
                fp.write(str(a)+' ')
            a = random.randint(1,100000)
            fp.write(str(a))
            fp.close()

            fp = open(filename1,"w")
            for i in range(n-1):
                a = random.randint(1,100000)
                fp.write(str(a)+' ')
            a = random.randint(1,100000)
            fp.write(str(a))
            fp.close()
            print("Success !!")
        elif(form == "float"):
            n = int(sys.argv[2])
            fp = open(filename0,"w")
            for i in range(n-1):
                a = round(random.uniform(1.0,100.0),5)
                fp.write(str(a)+' ')
            a = round(random.uniform(1.0,100.0),5)
            fp.write(str(a))
            fp.close()

            fp = open(filename1,"w")
            for i in range(n-1):
                a = round(random.uniform(1.0,100.0),5)
                fp.write(str(a)+' ')
            a = round(random.uniform(1.0,100.0),5)
            fp.write(str(a))
            fp.close()
            print("Success !!")
        else:
            print("Error!!")
else:
    print("Error!!")
    print("Usage: python datagen.py int/float DataNumber ThreadNumber")
Python中可以使用random库和numpy库来生成随机数。 在random库中,可以使用以下函数来生成随机数: - random.randint(n, m):生成一个n到m之间的随机整数。 - random.random():生成一个0到1之间的随机浮数。 - random.uniform(n, m):生成一个n到m之间的随机浮数。 - random.choice([]):从列表中随机选择一个元素。 在numpy库中,可以使用以下函数来生成随机数: - np.random.rand():产生N维的均匀分布的随机数。 - np.random.randn():产生N维的正态分布的随机数。 - np.random.randint(n, m, k):产生n到m之间的k个随机整数。 - np.random.random():产生一个0到1之间的随机数。 另外,还可以使用scipy库中的random.expovariate()函数来生成指数分布的随机数,可以通过指定均值来控制生成随机数的特性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python生成随机数](https://blog.csdn.net/m0_53653974/article/details/125753330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python 生成随机数的三种方法](https://blog.csdn.net/robert_chen1988/article/details/82887820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值