PostgreSQL में, setseed()
फ़ंक्शन बाद के लिए बीज सेट करता है random()
कॉल (-1.0 और 1.0 के बीच का मान, समावेशी)।
random()
फ़ंक्शन एक सरल रेखीय सर्वांगसम एल्गोरिथम का उपयोग करके एक छद्म-यादृच्छिक संख्या उत्पन्न करता है।
अगर setseed()
कहा जाता है, बाद के random()
. के परिणाम setseed()
. को फिर से जारी करके मौजूदा सत्र में कॉल दोहराए जा सकते हैं उसी तर्क के साथ।
उदाहरण
यह कैसे काम करता है, यह दिखाने के लिए यहां एक उदाहरण दिया गया है।
SELECT
setseed(0.8),
random(),
random();
परिणाम:
setseed | random | random ---------+--------------------+-------------------- | 0.7998745861323613 | 0.9776304992484732
अब, यदि मैं वही कथन दोबारा चलाता हूं, तो मुझे बिल्कुल वही परिणाम मिलता है:
setseed | random | random ---------+--------------------+-------------------- | 0.7998745861323613 | 0.9776304992484732
स्पष्ट होने के लिए, मेरे टर्मिनल में पूरा आउटपुट यहां दिया गया है जब मैं SELECT
both दोनों को चलाता हूं एक ही समय में बयान।
SELECT
setseed(0.8),
random(),
random();
SELECT
setseed(0.8),
random(),
random();
परिणाम:
postgres=# SELECT postgres-# setseed(0.8), postgres-# random(), postgres-# random(); setseed | random | random ---------+--------------------+-------------------- | 0.7998745861323613 | 0.9776304992484732 (1 row) postgres=# postgres=# SELECT postgres-# setseed(0.8), postgres-# random(), postgres-# random(); setseed | random | random ---------+--------------------+-------------------- | 0.7998745861323613 | 0.9776304992484732 (1 row)
सेटसीड के बिना उदाहरण ()
अब यहां बताया गया है कि यदि मैं दोनों कथनों को फिर से चलाता हूं, लेकिन setseed()
. के बिना क्या होता है? समारोह।
SELECT
random(),
random();
SELECT
random(),
random();
परिणाम:
postgres=# SELECT postgres-# random(), postgres-# random(); random | random --------------------+-------------------- 0.8789931563830109 | 0.8981750563441189 (1 row) postgres=# postgres=# SELECT postgres-# random(), postgres-# random(); random | random --------------------+------------------- 0.3630186384623926 | 0.909389353037664 (1 row)
तो इस मामले में, दूसरे कथन ने यादृच्छिक संख्याओं का एक नया सेट तैयार किया।