לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #5  
ישן 07-03-2008, 13:56
צלמית המשתמש של fcf
  משתמש זכר fcf fcf אינו מחובר  
 
חבר מתאריך: 17.09.05
הודעות: 6,023
שלח הודעה דרך ICQ אל fcf שלח הודעה דרך MSN אל fcf Facebook profile
בתגובה להודעה מספר 4 שנכתבה על ידי שימי שמתחילה ב "א. כמו כל דבר אחר שאתה רוצה..."

,תודה ..
קרא שוב את השאלה הראשונה שלי ותבין מה ביקשתי ...

איך אני מגריל 10 מספרים שונים לתוך מערך ?

הקוד שהבאת מכניס לכל תא מספר ראנדומלי כלשהו. אני חייב שכל המספרים יהיו שונים. אני מניח שזה איכשהו בעזרת לולאות מקוננות....

עריכה: בניתי קוד שאמור להכניס למערך 10 מספרים ראנדומליים שונים, נראה לכם שהוא יעבוד ?
הקוד ממש לא יעיל, הוא עובד בזמן של n^2 ככה שאם יש לי 100 קבצים לסרוק זמן הריצה במקרה הגרוע יהיה 10,000 שזה ממה ממש הרבה .... אני צריך משהו הרבה יותר יעיל (זה קוד שנטען בכל כניסה לעמוד הבית שלי)

קוד:
$flag=0; for ($i=0; $i<10; $i++) { $flag=0; $rnd=rand(1,100); for($j=$i;$j>0;$j--) { if($arr[$j]==$rnd) { $flag=1; } } if($flag==0) { $arr[]=$rnd;///איבר ראנדומלי חדש } else { $i--; ///להוריד את מונה הלולאה לבחירה נוספת של משתנה חדש } }
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה


נערך לאחרונה ע"י fcf בתאריך 07-03-2008 בשעה 14:03.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 07-03-2008, 14:18
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,778
בתגובה להודעה מספר 5 שנכתבה על ידי fcf שמתחילה ב ",תודה .. קרא שוב את השאלה..."

אה, שונים זה מזה...

יש כל מיני דרכים לעשות את זה, והשאלה היא אם רוצים להיכנס לחישובי יעילות מטורפים או לא (במילים אחרות - תלוי כמה פעמים אתה הולך לבצע את הקוד...).

השיטה הטריוויאלית היא פשוטה - על העיקרון שלך רק קצת פחות מסובך לדעתי:
קוד PHP:
<?php 
srand
(time());

$numbers 0;
$arr = array();

while (
$numbers 10)
 {
 
$number rand(1,100);
 if (!
in_array($number,$arr))
  {
   
$arr[]=$number;
   
$numbers++;
  }
 }
?>


שיטה אחרת היא ליצור מערך עם סדר מספרים עולה בכל תא שלו, ובהתאם למספר שהוגרל, למשוך החוצה את התא הזה מהמערך...(ואז בעצם שאר המערך זז) ולהוריד את מספר האפשרויות באחד. זה קצת מסובך יותר מבחינת קוד, אבל כנראה יותר יעיל. בשביל כמות הריצות הקטנה שאתה מציין, אני מאמין שהקוד שכתבתי לעיל הוא "good enough"...

אגב, אם אתה רוצה לא לעשות כלום בעצמך ופשוט לסמוך על PHP...
קוד PHP:
<?php
$arr 
range(1,100);
shuffle($arr);
for (
$i=0$i<10$i++)
 echo 
$arr[$i]."\n";
?>
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 07-03-2008, 14:54
צלמית המשתמש של fcf
  משתמש זכר fcf fcf אינו מחובר  
 
חבר מתאריך: 17.09.05
הודעות: 6,023
שלח הודעה דרך ICQ אל fcf שלח הודעה דרך MSN אל fcf Facebook profile
בתגובה להודעה מספר 7 שנכתבה על ידי fcf שמתחילה ב "תודה, הבנתי את הרעיון...."

זה הקוד שיצרתי.. יש איתו קצת באגים אני חושב...
בעיקרון הוא עושה 3 פעולות:"
1. סופר כמה קבצים (תמונות) יש בתקייה חיצונית
2. מכניס למערך בעל 2 תאים זוג מספרים ראנדומליים שונים (בעתיד שיהיו לי יותר תמונות בתקייה יהיו יותר משני תאים)
3. מדפיס את התמונות שנבחרו בריצות הראנדומליות

הקוד הזה יוצר פלט שהולך לסקריפט JS חיצוני שמציג את התמונות אחת אחרי השנייה. אני רוצה להציג בכל פעם מספר מסויים של תמונות (10 למשל) בסדר ראנדומלי מתוך מה שיש בתקייה

קוד:
<?php //////////////////ספירת מספר התמונות בתקייה $pics=0; if ($dir = @opendir("./topguides")) { while (($file = readdir($dir)) !== false) { $id= stristr($file, '.'); if($id==".jpg") { $pics++; } } closedir($dir); } ///////////// //////////////////////////////הכנסת מספרים ראנדומליים למערך בעל 2 תאים $numbers = 0; $arr = array(); while ($numbers < 2) { $number = rand(1,$pics); if (!in_array($number,$arr)) { $arr[]=$number; $numbers++; } } ///////////////////////////////////////הדפסת התמונות שנמצאות בריצות שנבחרו ראנדומלית $i=0; if ($dir = @opendir("./topguides")) { while (($file = readdir($dir)) !== false) { $id= stristr($file, '.'); if($id==".jpg" && in_array($i,$arr)) { $id = substr ($file, 0, strpos ($file, ".")); echo "<a href=\"index.php?page=guide&id=$id\"><img width=\"585\" height=\"172\" src=\"topguides/$file\"></a>\n"; } $i++; } closedir($dir); } ?>
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 22:14

הדף נוצר ב 0.03 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2026 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר