الانتقال إلى المحتوى

سؤال : دالة ارقام عشوائية


John

Recommended Posts

هل يوجد دالة تولد ارقام عشوائية ؟؟
لقد قام احد الاعضاء بطرح دالة مماثلة و اكنها تولد ارقام بين الـ صفر و الـ واحد
يعنى كسور
لا يوجد دالة تحدد لها الـ Upper value و الـ Lower value ????

رابط هذا التعليق
شارك

اخي الكريم

هذا نص رد الاخ محمد الشنقيطي (والذي نتمنى ان نرى مشاركاته القيمه في هذا المنتدى) لسؤال مشابه في منتديات الفريق العربي للبرمجة ولم استطيع وضع الرابط
لوجود مشكلة في عملية البحث في موقع الفريق العربي

نص الرد----------------------------------------------------------------------------------------------------

السلام عليكم
أخي العزيز ال dbms_random هي عبارة عن حزمة برمجية package تقوم بتوليد أرقام عشوائية فمثلا لو قمنا بتنفيذ الجملة التالية :


CODE
select dbms_random.value
from dual

SQL> /

VALUE
----------
.706864517

SQL> /

VALUE
----------
.931351916



إذا الناتج هو عبارة عن أرقام عشوائية ، يبقى السؤال كيف نستفيد من هذه الحزمة مثلا لإختيار 5 موظفين بشكل عشوائي :


CODE

select empno
from ( select empno
from ( select empno
from emp
where rownum < 50 )
order by dbms_random.value )
where rownum <= 5
/

EMPNO
----------
7876
7844
7369
7902
7900

SQL> /

EMPNO
----------
7369
7844
7521
7788
7698



لو تلاحظ ان الناتج مختلف في كل مره يتم تنفيذ الجملة السابقة والعملية التي تم تنفيذها هنا هي :
1- تم اختيار 49 موظف من مجموع الموظفين .
2- تم ترتيب 49 موظف حسب القيمة العشوائية ل dbms_random .
3- تم أختيار 5 موظفين .

وهذا استعلام آخر :

CODE

select *
from ( select empno, ename
from emp
where ename like '%'
order by dbms_random.value )
where rownum <= 4



ان شاء الله تكون وصلت الفكرة ، ولاتنسونا من دعوة صالحة في هذه الأيام الكريمة .
تحياتي
-----------------------------------------------------------------------------------------

ارجو ان يكون هذا هو المطلوب

رابط هذا التعليق
شارك

  • بعد 2 سنة...

لقد لاحظت هذا الامر ولكن بامكانك ايجاد عدد عشوائي بين رقمين وذلك باستخدام

select  dbms_random.value (1,99) from dual;
/
DBMS_RANDOM.VALUE(1,99)
-----------------------
              8.606225
/
DBMS_RANDOM.VALUE(1,99)
-----------------------
             36.126092


اي ان نمرر القيمة الدنيا 1 والقيمة الكبرى 99

تم تعديل بواسطة aymanmoftah
رابط هذا التعليق
شارك

  • بعد 1 سنة...


ممكن تستخدم الكود المكتوب باستخدام الاخ aymanmoftah ولكن علية تعديل بسيط لكى تحصل على رقم صحيحح
code
select trunc(dbms_random.value(1,99) from dual;
)
فسوف تحصل على اعداد عشوائية صحيحة بين 1و99

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

جزاك الله خيرا ........................
جزاك الله خيرا ........................
جزاك الله خيرا ........................
جزاك الله خيرا ........................
جزاك الله خيرا ........................
جزاك الله خيرا ........................
جزاك الله خيرا ........................
جزاك الله خيرا ........................

رابط هذا التعليق
شارك

  • بعد 5 سنة...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية