ABA


"חידה נחמדה - מציאת כמות סיביות דלוקות במספר"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15068 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15068
Limp Bizkit
חבר מתאריך 2.9.02
3436 הודעות
   20:15   21.11.08   
אל הפורום  
  חידה נחמדה - מציאת כמות סיביות דלוקות במספר  
 
   עוגן האשכול הוסר בתאריך 02.12.08 בשעה  19:46  על-ידי Nesher, (מנהל הפורום)
 
בהינתן המספר

36146419899623406382850079917709994738
80131493688073595954618706493148819648
35929902317375502299755625775443998380
42125409216559877186658662956700668814
53294859252399269963494314685363411520
07531729005094209325569880908800

מה כמות הסיביות הדלוקות בו?

התשובה המבוקשת היא לא קטע קוד, אלא רעיון תיאורתי איך למצוא את מס' הביטים הדלוקים

Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile; winning's
winning.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה לא מתכוון למכפלה רגילה? ldan192  21.11.08 20:21 1
  :) Sn00py  21.11.08 20:31 2
  אתה מתכוון למשהו שאפשר לחשב בזמן קצר? (פחות מ-20 שניות נניח חחח) Oranav 21.11.08 21:10 3
  משהו לוגריתמי ? O_O Net_Boy  21.11.08 21:11 4
  אממ אפשר אולי לחלק את המספר ב2 כל פעם ולבדוק שארית :| לוגריתמי :| DLN 21.11.08 21:56 5
     או במילים אחרות, SHR אחד וAND 1 על המספר עד שהוא שווה ל0 DLN 21.11.08 21:59 6
  יאללה, הזוכה פה גם יזכה לוינר Nesher  22.11.08 16:25 7
  אני רוצה רמז. צריך לספור את מספר הספרות בנ''ל? ldan192  22.11.08 17:13 8
     לא לזה הוא התכוון.. MiP 22.11.08 18:04 9
  נראה לי שהדרך הפשוטה ביותר.. MiP 22.11.08 18:39 10
     זה מה שאמרתי אחי... דקה אני ארשום תכנית גם DLN 22.11.08 21:25 12
  בקיצור מה ש DLN אמר... יש עוד דרכים אבל Sn00py  22.11.08 20:10 11
     בזמן לוגריתמי? לא חושב :| והנה בקוד DLN 22.11.08 21:31 13
     ברור שיש עוד דרכים.. MiP 23.11.08 00:32 14
  בלבלת לאללה. מספר הביטים הדלוקים במספר ומספר הביטים הדלוקים בbcd שונים TTAsnn 23.11.08 18:04 15
     הכוונה היא למספר הביטים הדלוקים במספר כולו Limp Bizkit 23.11.08 23:09 17
  בואו נהפוך את האתגר למשהו יותר מעשי Limp Bizkit 23.11.08 23:07 16
     חח יש פה איזה טריק חכם או פשוט לתת פתרון מעשי? DLN 24.11.08 01:40 18
         אני מניח שהעקרון זה לבנות ספרייה לייצוג מספר בגודל אינסופי... TTAsnn 24.11.08 21:41 19
     תיצור התאמה חח''ע בין המספר למספר הביטים שהוא מגדיל ldan192  25.11.08 00:33 20
  מה עם זה?: Heat_M 07.12.08 23:05 21
  טיפול במספרים גדולים באמת dryice 09.12.08 12:37 22
  לאכסן במערך בוליאני דינאמי? DOWNTOWN 18.12.08 17:07 23

       
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   20:21   21.11.08   
אל הפורום  
  1. אתה לא מתכוון למכפלה רגילה?  
בתגובה להודעה מספר 0
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   20:31   21.11.08   
אל הפורום  
  2. :)  
בתגובה להודעה מספר 0
 
   טוב נו אני לא אהרוס אבל חידה נחמדה.

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Oranav

   21:10   21.11.08   
אל הפורום  
  3. אתה מתכוון למשהו שאפשר לחשב בזמן קצר? (פחות מ-20 שניות נניח חחח)  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   21:11   21.11.08   
אל הפורום  
  4. משהו לוגריתמי ? O_O  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   21:56   21.11.08   
אל הפורום  
  5. אממ אפשר אולי לחלק את המספר ב2 כל פעם ולבדוק שארית :| לוגריתמי :|  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   21:59   21.11.08   
אל הפורום  
  6. או במילים אחרות, SHR אחד וAND 1 על המספר עד שהוא שווה ל0  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   16:25   22.11.08   
אל הפורום  
  7. יאללה, הזוכה פה גם יזכה לוינר  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   17:13   22.11.08   
אל הפורום  
  8. אני רוצה רמז. צריך לספור את מספר הספרות בנ''ל?  
בתגובה להודעה מספר 0
 
אם כן, לפי דעתי השיטה היא לסכום 2 בחזקת i כאשר i רץ מ-0 עד n (שזהו מספר הספרות) וחלק את המספר הנ"ל במספר שיוצא.
זה לפי דעתי אמור לתת את מספר הביטים שידלקו.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MiP
חבר מתאריך 24.5.05
782 הודעות
   18:04   22.11.08   
אל הפורום  
  9. לא לזה הוא התכוון..  
בתגובה להודעה מספר 8
 
   כמו שהבנתי הוא רוצה בהינתן מס' דצימלי כלשהו
ש"כאילו" תתבצע המרה לבינארי בדרך המהירה והיעילה ביותר
ואז מתוך המס' הבינארי ייאמר לו כמה סיביות של '1' מופיעות בו(הסכום שלהם).

תקן אותי אם אני טועה.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MiP
חבר מתאריך 24.5.05
782 הודעות
   18:39   22.11.08   
אל הפורום  
  10. נראה לי שהדרך הפשוטה ביותר..  
בתגובה להודעה מספר 0
 
   לקחת את המס' ובכל פעם להזיז אותו ימינה שמאלה עם הוספה של '0' בצד השני
ולבדוק את ה-CARRY האם הוא שווה ל- '1' אם כן להוסיף 1
ולבדוק בכל פעם האם המס' הכולל שנשאר לנו שווה לאפס אם לא להמשיך את
התהליך.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   21:25   22.11.08   
אל הפורום  
  12. זה מה שאמרתי אחי... דקה אני ארשום תכנית גם  
בתגובה להודעה מספר 10
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   20:10   22.11.08   
אל הפורום  
  11. בקיצור מה ש DLN אמר... יש עוד דרכים אבל  
בתגובה להודעה מספר 0
 
  

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   21:31   22.11.08   
אל הפורום  
  13. בזמן לוגריתמי? לא חושב :| והנה בקוד  
בתגובה להודעה מספר 11
 
  

int bitson(int n)
{
if (n==0)
return 0;
return (n&1)+bitson(n>>1);
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MiP
חבר מתאריך 24.5.05
782 הודעות
   00:32   23.11.08   
אל הפורום  
  14. ברור שיש עוד דרכים..  
בתגובה להודעה מספר 11
 
   אבל נראה לי שבדרך זו היעילות המתקבלת היא הטובה ביותר.
אפשר גם פירוק לפי ספרות קטנות(BCD).



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TTAsnn

   18:04   23.11.08   
אל הפורום  
  15. בלבלת לאללה. מספר הביטים הדלוקים במספר ומספר הביטים הדלוקים בbcd שונים  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Limp Bizkit
חבר מתאריך 2.9.02
3436 הודעות
   23:09   23.11.08   
אל הפורום  
  17. הכוונה היא למספר הביטים הדלוקים במספר כולו  
בתגובה להודעה מספר 15
 
  

Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile; winning's
winning.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Limp Bizkit
חבר מתאריך 2.9.02
3436 הודעות
   23:07   23.11.08   
אל הפורום  
  16. בואו נהפוך את האתגר למשהו יותר מעשי  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 23.11.08 בשעה 23:09 בברכה, Limp Bizkit
 
עד כאן עלו תשובות נחמדות, אבל בואו נסבך את העניין : תכתבו קטע קוד שיספור את מספר הביטים הדלוקים במספר הזה, אבל שימו לב שהגודל של המספר הזה לא בדיוק נכנס למשתנה long int רגיל...

בהצלחה

נ.ב
מותר להשתמש בכל שפה, חוץ מפייתון (מהסיבה הפשוטה שבפייתון long הוא משתנה בלתי מוגבל בגודל ולכן ניתן להכניס אליו מספרים מכל גודל שרק נרצה)

Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile; winning's
winning.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   01:40   24.11.08   
אל הפורום  
  18. חח יש פה איזה טריק חכם או פשוט לתת פתרון מעשי?  
בתגובה להודעה מספר 16
 
   כמו לקרוא את זה מקובץ או משני משתנים :|


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TTAsnn

   21:41   24.11.08   
אל הפורום  
  19. אני מניח שהעקרון זה לבנות ספרייה לייצוג מספר בגודל אינסופי...  
בתגובה להודעה מספר 18
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   00:33   25.11.08   
אל הפורום  
  20. תיצור התאמה חח''ע בין המספר למספר הביטים שהוא מגדיל  
בתגובה להודעה מספר 16
 
ערכתי לאחרונה בתאריך 25.11.08 בשעה 00:44 בברכה, ldan192
 
כלומר, תיצור מערך A שתתאים את מספר הביטים שמופיעים בין 0 ל-9 לשיטת המשלים ל-2.

אני מניח שמספר הביטים הדלוקים הוא כן סופי וניתן לייצוג ע"י Long int.
יש לך אינדקס i ואינדקס long int sum מאותחלים לאפס.
הקוד ילך בלולאה כזו:


while(i<=MAX){
sum+=A[i++];
}

אני מאמין שזה יעשה את העבודה


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Heat_M

   23:05   07.12.08   
אל הפורום  
  21. מה עם זה?:  
בתגובה להודעה מספר 0
 
   ממיר את המספר לHEX
עובד על כל ספרה\אות עם OR XOR וAND ובעצם משווה כל ספרה בינארית ל0
איך לאכסן? אני בטוח שמשהו יעלה לי לראש בזמן הקרוב...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dryice

   12:37   09.12.08   
אל הפורום  
  22. טיפול במספרים גדולים באמת  
בתגובה להודעה מספר 0
 
   כתבתי ישירות כאן, לאו דווקא מתקמפל, לאו דווקא יעיל:

String div2(string num) {
StringBuilder res=new StringBuilder();
int carry;
int i=0;
while num==0 i++;
for (i;i<num.length();++i) {
int c=Integer.valueof(num+carry);
res.add(c/2);
carry=5*c%2;
}
if res.length==0 res.add("0")
return res.toString();
}

int countBits(String num) {
if (num.equals("0") return 0;
int first=Integer.valueOf(num);
return first%2+countBits(div2(num);
}




                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DOWNTOWN
חבר מתאריך 28.5.02
5388 הודעות
   17:07   18.12.08   
אל הפורום  
  23. לאכסן במערך בוליאני דינאמי?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net