简体   繁体   English

选择随机种子并保存

[英]Choose random seed and save it

I would like to choose a random seed for numpy.random and save it to a variable. 我想为numpy.random选择一个随机种子并将其保存到变量中。 I can set the seed using numpy.random.seed(seed=None ) but how do you get numpy to choose a random seed and tell you what it is? 我可以使用numpy.random.seed(seed=None )设置种子,但是如何选择随机种子并告诉你它是什么?

Number seems to use /dev/urandom on linux by default. 默认情况下,数字似乎在linux上使用/dev/urandom

The full state of the MT19937 PRNG that underlies RandomState cannot be contained in a single (normally-sized, eg 32-bit or 64-bit) integer. 所述的装满状态MT19937 PRNG该underlies RandomState不能被包含在一个单一的(通常尺寸的,例如32位或64位)整数。 It has an array of 624 32-bit integers for its state. 它有一个由624个32位整数组成的数组。 Seeding with an integer actually runs a smaller, simpler PRNG to generate those 624 words. 使用整数进行播种实际上会运行更小,更简单的PRNG来生成这624个字。 It is just a convenient way for humans to manually set the state of the PRNG to a state that can be consistently replicated. 这只是人们手动将PRNG 状态设置为可以一致复制的状态的便捷方式。 But most states that the PRNG gets into cannot be reduced back to a convenient 32-bit integer. 但PRNG进入的大多数状态都不能简化为方便的32位整数。 That initializer PRNG cannot work "backwards" in this way. 初始化程序PRNG无法以这种方式“向后”工作。 Instead, the whole state of RandomState is contained in that 624-entry array. 相反, RandomState的整个状态包含在该624条目数组中。 You can get this array and set it using the get_state() and set_state() methods. 您可以使用get_state()set_state()方法获取此数组并进行设置。

>>> import numpy as np
>>> prng = np.random.RandomState()
>>> state = prng.get_state()
>>> state
('MT19937',
 array([2310623686,  364919541, 1436109096, 1457837701, 2852017530,  562204638, 1207376362, 2290452263,  250624867, 1687514807, 3242300311,   68301227,
        497650124, 3782308076, 4180165271, 3190969185, 1284472452, 2868357773, 1148940887,  433865334,  643839653, 3091921054, 2157305915, 4079505239,
       1396964105,  221256094, 2789328727, 3216471912, 1782932723, 1704818545, 3880597634, 2060476197, 2599008138, 1389874875,   56765165, 1173841349,
        278528026,  714062321, 3587382791,  840507318, 2086996355, 3416087866, 3081938567,  946222923, 4259369972,  868558506, 2060774692, 3239317074,
       4078800142, 3833877854, 1503749328, 3821805560, 1447854235,  995535877, 3762179650,  185008825,  149218213, 3469766149,  803379340, 3971043961,
       3421104633, 2287066419, 2465098532, 4088166586, 2105722956, 1451099732, 3115885598, 4240224392, 3778829453, 4059831750, 2919989511, 4092928731,
        922778621, 1805422791, 3344418665, 1738799711, 1367565729,   34977430, 4008589298, 2239856842, 1717530303,   32049105, 3468621644, 2269299060,
       1664083607, 3996022881,  377407365, 4070209212, 4216115381, 2124999225, 1920630572, 2011423407, 1367187092, 4158622494,  487432561, 3536187733,
        931951977,  749985693, 2812437433, 3902171864,  767004922, 3807520852,  796884475, 2794577773, 1481140267, 2247603372, 1053872430,  211335743,
       2997489007, 4140013480, 1601875594, 1927437737, 3349007801, 2868575676, 3474179396,  595650352,  517981041, 1947095736,  170970294, 3253183597,
       2873789192, 3386930182, 2047755893,  254974719, 2747566023, 4182212825, 1934990158, 1282861435,  404005052, 3237256048, 1737335951,  386655885,
        640537519,   60176882, 1825713593,   86537970,  252007523, 3674897989, 3645447766,  972417578, 1860821974, 2688102651, 2481103756, 3672142036,
       2961031222, 1709451377,  134371222, 4217784577, 3792528752, 1278543741,  291978547, 1987232116, 2685749450,  948431490, 3550698848, 1384058130,
        302186886, 2966159795, 1981959565, 2602891721, 1814325871, 4148300386, 1211156469, 2945951607, 4132724234, 1221821676, 3057395063, 1563869020,
       3762934166, 3303914085, 1910775932, 2241726842, 3836262483,  905479357, 2974032168, 3187395363, 3071243546, 3571439927, 3756380578,   53494506,
        495375628, 2149633842, 1549467921,  403773184, 3774309942, 1767528278,  421982610,  579688614, 3735062896, 2128447283, 2545877077, 3013437905,
       4067651631,   26043227, 3189924699, 1882256309,  431961449, 3637287121, 1409924095, 3834921204, 3796550515,  338734970, 1632375419, 3788135288,
        153287562, 2302436235, 3852961194, 2073555800, 3034065218, 1997718747, 3343015031, 3198064720, 4286393046, 3338997777, 1383744819, 1553624825,
       1183357509, 1141531260,   25823987, 2951322047, 4066666075, 3687780778, 3680053857,  478734258, 3674686218, 1457141125, 3673486342, 3224971043,
       2786082270, 2282591016, 1210618789, 3735610308,  587294285, 4231880327, 3702701983,   13470000,   90747549,  876795924, 1489448380,  585176585,
       2398768918, 3069244786, 2901497718, 4004899727, 1992450245, 1127097566,  713011674, 2083831719, 2923291311,  315998911, 1511233310, 1515243002,
        621858088, 2398475656, 3029652473, 1011396654, 1854317252, 2735915680, 1489448619, 3836317799, 1678027486, 2429831383,  170989290,  651235170,
       1457126476, 3694269669, 4248613755, 3161380741, 3396304589,   26218095, 4262314194, 3090365505, 2603976562, 1742639443, 3357356842, 2527908520,
       2744118109,  764708873,  608716002,  218517036, 2028062957,  123264851, 3930797933, 1358280349, 3770182726, 1475205800, 4083653367,  728440387,
        578359463, 3792859449, 2660424205,  866268419, 2680711984, 1892477918, 3473675890,    5948212,  590585309, 1434154869, 4019090587, 3447601971,
       3777365598,  502271900,  933280098,  551410763, 4178545332, 2426657681,  435161245,  103552671, 2751130089, 1664159723, 2124278140, 3518289293,
       1397473574, 4032873848, 3104766011, 3780526375,  146118438, 3497842141, 2078614647, 1431064844,  825222639,  954382890, 3170571595, 1418867403,
       4133763948, 2773874577,  459104952, 3336058631,  791669682,   79496438, 1268256964, 1327605157, 3196785479, 3094404795, 3971934915,  967528556,
       1680157581, 1508139540, 3821158380, 3603819236,  593155253, 1875654417, 3734837198, 3315972391, 2450938455, 1863178045,  619766009, 1376779265,
        843230528, 1818810226, 1508689309, 1353144904, 3459699509,  734863896, 1593154156, 4178196553,  559982910, 1937392142, 3328058492, 2417976146,
       3197182411, 2233439700,  196920494, 3714701774, 4104568606,  850977604,  382851029, 4143478133, 3024891142, 2455897904,   28681198, 3438784382,
        578301023, 2215641381,   59642080, 2913625733, 2063824530, 2113835214,  563503294, 2261300428, 1156324177, 3080988993, 1485826140,  291045970,
       3740234437, 2802003429,  804278225, 1715783317, 3683156408, 2855890524, 2390104305,  172369852, 3358371994, 1184782876, 2087670358,  840924195,
       2727925375, 1806621317, 2785628046, 4163132724, 3580142689, 1107366902,  809125531, 3131770778, 1922818283,  888842000, 2875999147, 2752567229,
        170460348, 1952532683, 1705378473, 1784443344, 1111435234, 2373828316, 1440965774, 3986117425,  849160375, 1233392480, 4073490673, 3948548975,
       2317742686,  459747729, 3981827733,   97170450, 1906613346, 2296986726, 3107045483, 3301310854, 2005065797, 1047441812, 1340913878, 1305190832,
       3414530672, 2739562683,  670592573, 3517927973, 3902124497, 4085960935,  823980090,  982263838, 1807290575, 1182843877, 3543714667, 1403590968,
        329717243, 1055811172, 3550329386, 3998515559, 3251582755, 2201054306, 3347834116, 1211790680,   62972368,   88227180, 2967020240, 1937245345,
        524567284, 2915223835, 1039263578,  931149438, 2102426452, 4178383760, 2534760455, 3961494901,  359726861, 2377704223, 3980574430, 3941075859,
       3025460765, 1087397787, 1520908724, 3979084899, 3800423495,  139799221,  644687977, 1080267251,  599331265,  379370383, 3716980301, 2450151406,
       1223752702,  300351842,  295249068, 1870733374, 2986315084, 1323736886,  306347366, 2697516131, 3896227616, 2556699990,  578928278, 2356101730,
        171880210,  722319049,  740054230, 3855145369, 1468149367,  311954206, 4099077708, 2941657479,  119786529, 3197372768, 2115311247, 2469241538,
       2636086203, 2206369175,  374899905, 3730393440, 2288141890,  719446033, 4096038147, 4294410470,   19272682, 1964868281, 3192582061, 3934009074,
       1135732985,  682697379, 3290113635, 1489105351,  347638343,  147496092, 4175447059,  341595821, 3117140389, 1003085251, 1889252416,  913732530,
       3459561042, 3662473182, 3839509269, 1519115576,     677113,  597583022, 3031451769,  607339281,   55523370, 2676982537, 1238056185, 1550912054,
       3112284354, 1345961520, 1541909925, 3726796822, 2696250478, 3254836471, 1362613883, 3129122359, 1550126204,  129690651, 2386622242,  407302605,
       1753882614, 2376840660, 1076064874, 2449053256, 3162294193, 3779999195, 3925427556, 2601606505, 1901788890, 2217639773,  406665902, 3640687773,
       2061876750,  968895635,  587973195, 2778479214,  668417883, 2226398520, 1464491431, 2792659882, 3481258691, 2339776369, 2747947338, 3000199533,
       3712567952,  376206272, 2149616269,  985682501,  865295391, 1812641626,  567425379, 1468520640, 2273677177, 2267568076, 3898328230,  898149034,
       3750298043,  394538907, 4101461357, 2781824777, 2719406676, 3415420393,  122661889, 1452536307, 1463257506, 2874481787, 2250093815, 1439068642,
        597070280, 1439076517, 4207797347, 2579732532, 3704826787, 3847236064, 4155289003,  990963026, 2602619627,  701644802, 3629646548, 1110000288,
       3609356614, 2748019645,  638526248, 3265491895, 2839687161,  913026615, 2748040592,  975131382,   83378202, 4236013846,  764917668, 1887262417], dtype=uint32),
 624,
 0,
 0.0)
>>> prng.random_sample()
0.20598058788141316
>>> prng.random_sample()
0.6864005375257146
>>> prng.random_sample()
0.08407651896523582
>>> prng.set_state(state)
>>> prng.random_sample()
0.20598058788141316
>>> prng.random_sample()
0.6864005375257146

You can also pickle RandomState objects. 您还可以RandomState对象。 We implemented this using the get_state() data, so it will reliably reproduce the state of the PRNG. 我们使用get_state()数据实现了这一点,因此它可以可靠地重现PRNG的状态。 Depending on exactly what you want to do (you don't say), this is frequently the most convenient thing to do rather than mucking about with get_state() and set_state() manually. 根据您想要做的事情(您没有说),这通常是最方便的事情,而不是手动使用get_state()set_state()

>>> import cPickle
>>> pickled = cPickle.dumps(prng)
>>> prng.random_sample()
0.08407651896523582
>>> prng.random_sample()
0.3501860271954601
>>> prng2 = cPickle.loads(pickled)
>>> prng2.random_sample()
0.08407651896523582
>>> prng2.random_sample()
0.3501860271954601

You can't… but there's really no good reason to do so. 你不能......但是没有充分的理由这样做。 Unless you're actually trying to reproduce the behavior of seed , rather than put the RNG into a repeatable state, you're trying to add an extra level of indirection for no reason. 除非您实际上尝试重现seed的行为,而不是将RNG置于可重复状态,否则您试图无缘无故地添加额外的间接级别。

If you want to stash and restore the RandomState , do that, using the get_state() and set_state() functions. 如果要RandomState和恢复RandomState ,请使用get_state()set_state()函数执行此操作。


If you really want to use seed instead, you can just use np.random to generate a random seed (eg, via random_integers(0, 255, SOME_LENGTH) ), which you can stash and reuse later. 如果你真的想要使用seed ,你可以使用np.random生成一个随机种子(例如,通过random_integers(0, 255, SOME_LENGTH) ),你可以在以后random_integers(0, 255, SOME_LENGTH)和重用它。 But there's not much reason to do that. 但是没有太多理由这样做。


Or, of course, you can call Python's os.urandom to create a seed the same way NumPy does by default. 或者,当然,您可以调用Python的os.urandom来创建种子,默认情况下与NumPy相同。 Note that the docs explicitly say that: 请注意,文档明确说明:

If seed is None , then RandomState will try to "read date from /dev/urandom (or the Windows analogue) if available or seed from the clock otherwise. 如果seedNone ,那么RandomState将尝试“从/dev/urandom (或Windows模拟)中读取日期(如果可用),或者从时钟读取种子。

But again, there's not much reason to do that either. 但同样,也没有太多理由这样做。 (Also, it isn't documented how much randomness it gets from urandom , so there's always the risk that you'll be seeding it with less random data than it normally uses, or wastefully gathering too much.) (另外,它不记录多少的随意性它变得urandom ,所以总是有,你会用得比通常使用或浪费聚集太多随机的数据来播种它的风险。)

According to the docs , when seed is None , numpy tries to read from /dev/urandom , so why not just read a value from /dev/urandom , save it, and pass it to numpy.random.RandomState ? 根据文档 ,当seedNonenumpy尝试从/dev/urandom读取, 那么为什么不从/dev/urandom读取一个值,保存它,并将它传递给numpy.random.RandomState

EDIT: 编辑:

The internal state can be get and set via get_state and set_state , respectively. 内部状态可以分别通过get_stateset_state获取和设置。 So, to recover the initial state, one would do something like this: 因此,要恢复初始状态,可以执行以下操作:

>>> import numpy
>>> r = numpy.random.RandomState()
>>> saved_state = r.get_state()
>>> r.rand()
0.9091545657342729
>>> r.rand()
0.9677739782319564
>>> r.rand()
0.5656156400920441
>>> r.set_state(saved_state)
>>> r.rand()
0.9091545657342729
>>> r.rand()
0.9677739782319564
>>> r.rand()
0.5656156400920441
>>> 

When seed is None , numpy doesn't pick a "new random seed" and call seed() with it. 当种子为Nonenumpy不会选择“新的随机种子”并用它调用seed() It reads 624 * sizeof(long) bytes ( ~ 2.5KB ) from /dev/urandom and uses those values to populate the state struct. 它从/dev/urandom读取624 * sizeof(long)字节( ~ 2.5KB )并使用这些值填充state结构。 When you call seed() without arguments, numpy never actually "chooses" a "random seed". 当你调用没有参数的seed()numpy实际上从不“选择”一个“随机种子”。 Therefore, it's not possible to recover it. 因此,无法恢复它。

When people need a random seed that can be recorded, people usually use the system time as a random seed. 当人们需要可以记录的随机种子时,人们通常将系统时间用作随机种子。 This means your program will act differently each time it is run, but can be saved and captured. 这意味着您的程序每次运行时都会采取不同的行为,但可以保存和捕获。 Why don't you try that out? 你为什么不试试呢?

If you don't want to do that for some reason, use the null version, numpy.random.seed(seed=None), then get a random number from it, then set the seed to that new random number. 如果由于某种原因不想这样做,请使用null版本numpy.random.seed(seed = None),然后从中获取一个随机数,然后将种子设置为新的随机数。

If you want you can also save it in a json file and then unpack it and then use it again. 如果你想要你也可以将它保存在json文件中,然后解压缩然后再次使用它。 Since numpy stuff can't be serialized you need to serialize it yourself but its not that bad: 由于numpy东西无法序列化,你需要自己序列化,但它并没有那么糟糕:

One file: 一个文件:

import json
import numpy as np

def put_numpy_seed_in_json_dic(results):
    (rnd0,rnd1,rnd2,rnd3,rnd4) = np.random.get_state()
    rnd1 = [int(number) for number in rnd1]
    rand_seed = (rnd0,rnd1,rnd2,rnd3,rnd4)
    results['rand_seed'] = rand_seed
    return results

def get_numpy_seed(results):
    (rnd0,rnd1,rnd2,rnd3,rnd4) = results['rand_seed']
    rnd1 = [np.uint32(number) for number in rnd1]
    rand_seed = (rnd0,rnd1,rnd2,rnd3,rnd4)
    return rand_seed

then run it to save the seed: 然后运行它来保存种子:

import json
import numpy as np
import my_rand_lib as mr

results = {'rand_seed':None}
results = mr.put_numpy_seed_in_json_dic(results)

print np.random.rand(1)
print np.random.rand(1)
print np.random.rand(1)

fpath = './rand_seed_file'
with open(fpath,'w+') as f:
    json.dump(results,f)

print '... doing other stuff'

with open(fpath,'r+') as f:
    results2 = json.load(f)

print 'other ',np.random.rand(1)
print 'other ',np.random.rand(1)
print 'other ',np.random.rand(1)

print '... done doing stuff'

rand_seed = mr.get_numpy_seed(results2)
np.random.set_state(rand_seed)

print np.random.rand(1)
print np.random.rand(1)
print np.random.rand(1)

and if you don't want to generate a seed everytime you run it you can have: 如果您不想在每次运行时生成种子,您可以:

import json
import numpy as np
import my_rand_lib as mr


fpath = './rand_seed_file'
with open(fpath,'r+') as f:
    results2 = json.load(f)

rand_seed = mr.get_numpy_seed(results2)
np.random.set_state(rand_seed)

print np.random.rand(1)
print np.random.rand(1)
print np.random.rand(1)

I tried this on a remote server and I always get matching random numbers: 我在远程服务器上试过这个,我总是得到匹配的随机数:

[ 0.90741273]
[ 0.6861296]
[ 0.21714398]

not sure if this is interesting but this was the seed (which is a tuple): 不确定这是否有趣,但这是种子(这是一个元组):

{"rand_seed": ["MT19937", [3244492226, 4276548057, 571402114, 3235873143, 4078239958, 1440625038, 4042777784, 3400010150, 1164584760, 271139028, 1264217608, 1403324904, 234696259, 623484078, 3424719234, 3896351743, 1818071683, 3077380191, 2989066157, 3828180331, 2032001745, 1137603205, 1993713826, 873523654, 3267461254, 2964954176, 3217679339, 4079232021, 1182272168, 402998421, 968119626, 2151162455, 2550226639, 3522780791, 245256811, 2866158388, 587411937, 2836234133, 3485394274, 1767143488, 3772379711, 1244725495, 1061026769, 2544419920, 3963050848, 232749713, 2084368489, 1990090546, 2883903063, 174001222, 2569537698, 517341511, 2366955295, 1830324490, 2388090514, 1637855850, 1383101875, 2719629528, 885528387, 7941101, 2769663894, 2704541593, 3129289945, 2681434614, 3308402481, 2161196492, 2896442132, 1474561199, 156414990, 2934014108, 2740454316, 4029663532, 2903418479, 118978587, 3095335574, 1044532364, 2629619463, 623783821, 3172307947, 2539001597, 2020636966, 404303542, 373288588, 289388097, 1050356390, 1126919064, 474676333, 2156863001, 92975776, 1204572119, 1341956590, 4284155262, 3380981209, 1268302262, 835613316, 623125230, 1150083001, 3444902937, 2318349536, 2881496834, 393068269, 28626933, 2931354423, 2014174400, 4212996966, 3105086458, 74404022, 413795342, 3782258177, 3626466932, 1932129332, 3538419256, 943472124, 963175815, 4076955699, 52410025, 318657184, 839799912, 2150435130, 3187525421, 2124551508, 3930704180, 2375548757, 497820208, 422355274, 260159836, 3437157934, 1301403840, 4057357702, 3217300631, 2910194797, 1972036860, 624838554, 3418367281, 3823714808, 1342594222, 3874939587, 3578421466, 3997730187, 751930224, 801189513, 1225089722, 910752086, 1415351761, 4287089458, 224210780, 643596696, 1030838729, 1924676141, 2579935013, 32904138, 2486616018, 1665731347, 642496995, 577928776, 4119274366, 1438990597, 885648199, 2401966414, 1937630298, 2029522084, 3823943785, 1652388617, 242507028, 163957584, 197993457, 3003700508, 2357598705, 479742798, 2159530434, 2641855048, 1153321528, 458640940, 1364908158, 3931878737, 3754891907, 733317650, 3631844997, 209681576, 780025499, 217109730, 2659949782, 164210317, 2234081627, 2798187303, 3793035212, 622613442, 4027945659, 1264924240, 3755962138, 168637328, 4193297896, 593711399, 2018193001, 696136156, 3343926759, 3938753383, 3549915312, 2049590636, 1732826453, 3770804132, 1544263650, 3623494103, 1454784121, 860580298, 1336846278, 3298403325, 4156569419, 51196786, 3398541940, 717201402, 1418590160, 3407195989, 293192063, 3871127471, 963318294, 3177164855, 2248856336, 2363561954, 2122436074, 3083439454, 331898151, 3489466823, 1480231253, 3727404028, 1942269624, 3342915239, 2451833278, 1279324699, 3678779848, 494256563, 170826038, 3200966622, 3284372389, 3798475074, 191206256, 1112201427, 3959301392, 43618741, 1358008929, 2972254642, 2250013335, 659600256, 720199815, 1355589829, 1511937267, 2090180739, 2779086170, 704140912, 1354505400, 4106508219, 4130987887, 1135113560, 3310205054, 2559493616, 3994237157, 2449530906, 1017478859, 2475414025, 260408932, 3882314025, 3169908095, 1431718224, 755730563, 4129813635, 482751982, 42657908, 2418940148, 2380660631, 3596648617, 2668040386, 3700947086, 1235361153, 4212839143, 2803192914, 679783840, 1396721631, 3549531060, 3714188947, 1582886984, 3930587164, 1787845200, 1878170563, 3998685888, 275016726, 1362149445, 1784854500, 3413367687, 999979145, 30464988, 1781846287, 2052179802, 614372595, 1795389478, 3837746383, 1716252322, 1496633789, 1913960414, 3824749341, 745150948, 2990885936, 3557188824, 1853716952, 226442384, 3881419361, 3877508921, 2125849259, 3725330620, 4249819850, 1866002740, 3954375926, 1263697298, 2359110923, 3704149399, 3915156522, 2720534920, 2240262865, 1298116022, 2430494738, 3106481019, 1118448263, 3386525375, 3850025930, 947096317, 2014058358, 2943385566, 1639655978, 824538918, 2893393554, 190010755, 918084027, 4197568458, 2308675470, 3969533604, 823650146, 3971685975, 3959021418, 2335451148, 3651109937, 3536101054, 2028026981, 1042621858, 2093418547, 3332527479, 345797902, 1962843497, 1651609280, 849683942, 701440541, 3001603849, 2547855201, 2847179356, 2686463194, 2556105058, 2957249371, 4122354156, 4095666057, 3269707747, 2075948426, 4189148196, 59188700, 1425136277, 4010662242, 403095998, 2435933607, 3254626634, 320429604, 921618676, 4179054005, 1590495757, 362965764, 3892792894, 4264771139, 300303781, 4194594842, 1773582295, 1792749320, 3114744569, 3059831369, 543108826, 605116437, 1206221920, 3763708911, 3474933214, 933590768, 4096747554, 2732890014, 1180321103, 3174872523, 2361419553, 303084740, 3438967187, 829657141, 3976738932, 3250508727, 2965752967, 2766618501, 2610047728, 3913791738, 2383381107, 2911412379, 2570048205, 1059652767, 1105153800, 258287599, 1366361775, 1043101709, 4136777479, 4002476750, 2242511114, 1937386895, 2318776696, 3919577988, 819932046, 2154232126, 2359937340, 1707529303, 1430709021, 57940224, 2463543918, 439698027, 2154236676, 2989369870, 2711983380, 1243586438, 1648109179, 234677646, 1369164631, 3246772730, 1150951970, 707111532, 2641066313, 1561023105, 2352529521, 3905609297, 3758075920, 4124559541, 3768803924, 3443976002, 2619333832, 3399759018, 2295667887, 4126858561, 3139541980, 2382271429, 4033423715, 648775734, 2777131955, 1929238235, 2146942632, 1115329972, 3985641642, 2007135435, 3551753547, 2967740448, 4196112540, 61581572, 886344810, 4097187928, 1166916633, 3890455280, 1473584306, 1440678763, 2848991175, 2493980496, 3967544385, 1757152663, 52315252, 2476642029, 2727074449, 4197000746, 2878883929, 144032869, 3517610268, 3758074755, 164078969, 4288210033, 1130401207, 2376285572, 3726677017, 2021546352, 2763363362, 791950895, 1834778577, 3067448324, 2618082688, 4194263605, 84230440, 624358904, 3203686228, 2014115933, 1844566018, 314698511, 1096366940, 1413533306, 2490690918, 3524310116, 3912232452, 3595400103, 2104097721, 2277699865, 2127808758, 890104002, 4261780514, 3943759279, 2421596910, 3462302371, 3114202694, 3301664792, 3958641805, 3828288008, 3138631754, 2707054121, 873889048, 360096040, 1277036249, 310404450, 1841086653, 1324064291, 1069123460, 3667889879, 3549162319, 4105010862, 3802778145, 1818048305, 3083126999, 3810922140, 2364932315, 2667079274, 3034477663, 1142598277, 2129656233, 2900596493, 1771721766, 2091125900, 2024931777, 2186939139, 4292757779, 3168005700, 2700706967, 2033965363, 2815886839, 1936909550, 1018210446, 2494829103, 3182190430, 4070030839, 3878343946, 3290625485, 2885062721, 3427598831, 3748858811, 2021454997, 2926497731, 3462334646, 747641905, 2870980834, 1072943394, 370913272, 519334913, 3099507262, 698616436, 3884871568, 2530196197, 223690634, 1816574877, 2872502342, 3629966511, 4040316403, 400367036, 1898479168, 1795033191, 4090946019, 938326326, 1509105095, 886381170, 4207241822, 2919702734, 1437184594, 2765872952, 561764883, 3441440757, 1219765705, 209412518, 1098738818, 3782425126, 3113624586, 3302772981, 1213966890, 4292826280, 4109015079, 1949958581, 320991923, 1070765942, 2002780881, 3364869673, 3039286974, 1824574474, 1266616388, 703321141, 2004303453, 1284326590, 728587648, 427042526, 2160662521, 2783764788, 3053336315, 3542331332, 2881174731, 4160514263, 3326878203, 4139791808, 2639767143, 3144886711, 480269073, 2318151636, 3594165209, 1629301762, 1786754501, 1157007028, 1415023980, 172137771, 3444342355, 3889095376], 624, 0, 0.0]}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM