Page 2 of 2 FirstFirst 12
Results 11 to 18 of 18

Thread: [มาตอบกันดูครับ]ปัญหานับเลขแบบ simple

  1. #11
    Junior Member
    Join Date
    Dec 2008
    Location
    Lampang
    Posts
    13


    ถ้า 500000 ยังสร้างอาเรย์ไม่ได้เลยคับ

    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 35 bytes) in E:\WWW\test1\index.php on line 14

    ตรงบรรทัด

    $ppl_arr[] = ++$i;
    Progressive rock blood.

  2. #12
    Senior Member retool2's Avatar
    Join Date
    Aug 2008
    Location
    Under Relocation
    Posts
    178


    500000 หาร 2 ไปเรื่อย ๆ จนเหลือ 0
    จะได้วงรอบ เอาวงรอบคูณ 2 ลบด้วย 500000
    จะได้ตัวเลขสุดท้ายที่จะอยู่
    ใช่รึเปล่าครับ เลขอะไรไม่รู้อ่ะครับ
    ไม่มีความรู้ทางด้านการเขียนโปรแกรมเลยครับ
    ไครรู้ช่วยทีซิ
    [/b]
    ยังไม่ใช่ครับ เพราะว่าถ้าหารไปเรื่อยๆมันจะมีเลขปลายๆที่หายไปครับ


    ถ้า 500000 ยังสร้างอาเรย์ไม่ได้เลยคับ
    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 35 bytes) in E:\WWW\test1\index.php on line 14
    ตรงบรรทัด
    $ppl_arr[] = ++$i;
    [/b]
    ที่ผมกำหนดให้ 500000 เพราะว่ามันจะได้ error นั่นแหละครับ


    เทคนิกที่สองหาโดยไม่ต้องเขียนโปรแกรมสามารถทำได้ด้วยนะครับ
    วางข้อมูลไว้เป็นสมการได้ ตัวอย่างเช่น
    100 ตัว
    รอบ 1 เริ่มนับ 0 เลขที่เหลือคือ 2n คนสุดท้ายนับ 1 เหลือทั้งหมด 100/2 = 50 คน
    รอบ 2 เริ่มนับ 0 เลขที่เหลือคือ 4n คนสุดท้ายนับ 1 เหลือทั้งหมด 50/2 = 25 คน
    รอบ 3 เริ่มนับ 0 เลขที่เหลือคือ 8n คนสุดท้ายนับ 0 เหลือทั้งหมด 25/2 ปัดลง = 12 คน
    รอบ 4 เริ่มนับ 1 เลขที่เหลือคือ 8(2n-1) คนสุดท้ายนับ 0 เหลือทั้งหมด 12/2 = 6 คน
    รอบ 5 เริ่มนับ 1 เลขที่เหลือคือ 8(2(2n-1)-1) คนสุดท้ายนับ 0 เหลือทั้งหมด 6/2 = 3 คน
    รอบ 6 เริ่มนับ 1 เลขที่เหลือคือ 8(2(2(2n-1)-1)-1) คนสุดท้ายนับ 1 เหลือทั้งหมด 3/2 ปัดขึ้น = 2 คน
    รอบ 7 เริ่มนับ 0 เลขที่เหลือคือ 8(2(2(2(2n)-1)-1)-1) คนสุดท้ายนับ 1 เหลือทั้งหมด 2/1 = 1 คน

    เหลือ 1 คนแล้ว ใส่ค่า 1 ใน n จะได้คำตอบว่าเป็น 72 ครับ

    คิดมือนี่เหนื่อยเหมือนกันนะเนี่ย ปัญหาง่ายๆแต่พอมาเป็นการคำนวนแล้วปวดหัวดีจริงๆ

  3. #13
    Junior Member
    Join Date
    Nov 2008
    Posts
    5


    จากที่ผมใช้เวลา 20 นาทีมั่วออกมาได้ดังนี้

    คนสุดท้ายคือ 262144 (ทำไมมีความรู้สึกว่าไม่น่าจะถูกก็ไม่รุ = =)


    วิธีคิดของผม

    **Hidden Content: To see this hidden content your post count must be 1 or greater.**


    ก็ได้ตามนั้นแหละครับ จะถูกมั๊ยล่ะเนี่ย = =

  4. #14
    Senior Member retool2's Avatar
    Join Date
    Aug 2008
    Location
    Under Relocation
    Posts
    178


    จากที่ผมใช้เวลา 20 นาทีมั่วออกมาได้ดังนี้
    คนสุดท้ายคือ 262144 (ทำไมมีความรู้สึกว่าไม่น่าจะถูกก็ไม่รุ = =)
    ก็ได้ตามนั้นแหละครับ จะถูกมั๊ยล่ะเนี่ย = =
    [/b]
    ยังไม่ถูกครับ เพราะว่าสังเกตุที่การหักออกแต่ละครั้งนั้น
    บางครั้งเหลือจำนวนคนเป็นจำนวนคี่ ทำให้การนับไม่ตรงแบบ 2^n ครับ

  5. #15
    Junior Member
    Join Date
    Dec 2008
    Location
    Lampang
    Posts
    13


    ตอบคุณ retool2 นะครับ

    คุณบอกเพื่อให้มันเออเร่อ ดังนั้น ผมจังไปแก้ที่ php.ini ตรงบรรทัด

    memory_limit = 8M ; Maximum amount of memory a script may consume (8M

    เปลี่ยนเป็น 50M

    ดังนั้น คำตอบคือ

    คนที่มีเบอร์ 475712 ครับ
    Progressive rock blood.

  6. #16
    Junior Member
    Join Date
    Nov 2008
    Posts
    5


    ยังไม่ถูกครับ เพราะว่าสังเกตุที่การหักออกแต่ละครั้งนั้น
    บางครั้งเหลือจำนวนคนเป็นจำนวนคี่ ทำให้การนับไม่ตรงแบบ 2^n ครับ
    [/b]
    เพิ่งกลับไปอ่านโจทย์มาใหม่

    สรุปแล้ว ลืมไปว่ายืนกันเป็นวงกลม = =

    เด๋วไว้ว่างๆอีกทีค่อยคิดใหม่ = =

  7. #17
    Junior Member
    Join Date
    Feb 2008
    Posts
    15


    โอ้ย อ่านโจทย์ไม่ละเอียด ขอตอบใหม่อีกรอบ
    **Hidden Content: To see this hidden content your post count must be 5 or greater.**

    edit: แก้คำผิด

  8. #18
    Senior Member retool2's Avatar
    Join Date
    Aug 2008
    Location
    Under Relocation
    Posts
    178


    Exclamation

    ตอบคุณ retool2 นะครับ

    คุณบอกเพื่อให้มันเออเร่อ ดังนั้น ผมจังไปแก้ที่ php.ini ตรงบรรทัด

    memory_limit = 8M ; Maximum amount of memory a script may consume (8M

    เปลี่ยนเป็น 50M

    ดังนั้น คำตอบคือ

    คนที่มีเบอร์ 475712 ครับ
    [/b]
    475712 เป็นคำตอบที่ถูกต้องครับ(ไม่รู้ว่าเครื่องคำนวนนานไหมนะครับ)
    แต่ผมแนะนำเพิ่มเติมนะครับ ถ้าใครสังเหตุดีๆจะเห็นว่าถ้าเราใช้จำนวนคนเป็น
    2 4 8 16 32 64 128 จะได้คำตอบออกมาเป็น 2 4 8 16 32 64 128
    มันกลายเป็นลำดับทันทีเลยครับ ลองใส่ค่าคนเป็น 2 3 4 5 6 7 8 9 10 11 ... ถึงสัก 64
    จะเริ่มเห็นความสัมพันธ์ครับ จะเห็นว่าความสัมพันธ์เป็นแบบ เพิ่มขึ้นทีละ 2 ไปเรื่อยๆ
    จนมากกว่าจำนวนคน แล้วจากนั้นจะกลับไปเริ่มใหม่ที่ 2
    ผมเลยเขียนโปรแกรมใหม่ หาได้เร็วขึ้นกว่าเดิมแต่หาได้แต่คำตอบ ไม่มีรายละเอียดแต่ละรอบเหมือนอันแรกดังนี้
    Start with 0
    and count 0 is out
    input = : 500000 people.
    answer = : 475712
    Calculation time is 0.275274991989 seconds [/b]

    [hide=5][code]
    <body onload="document.people.people.focus();">
    <form action="" method="post" name="people">
    <input type="number" name="people"/>
    <input name="submit" type="submit" value="Count"/>
    </form>
    Start with 0

    and count 0 is out

    <?php
    if(!isset($people)){die();}
    if($_POST[&#39;people&#39;]<=0 || !is_numeric($people)){die("Input must number only and more than 0");}
    $time_start = microtime(true);
    $answer = findlast($_POST[&#39;people&#39;]);
    echo "input = : ".$_POST[&#39;people&#39;]." people.
    ";
    echo "answer = : ".$answer."
    ";
    $time_end = microtime(true);
    $time = $time_end - $time_start;
    echo "Calculation time is $time seconds\n";

    function findlast($in){

Page 2 of 2 FirstFirst 12

Similar Threads

  1. A simple TCP spoofing attack
    By Dragking in forum Hacking,How to Articles/Tutorial/Techniques (English)
    Replies: 0
    Last Post: 22-11-2008, 10:37 PM
  2. Simple DNS Plus Denial of Service
    By newsbot in forum Exploits
    Replies: 0
    Last Post: 18-07-2008, 03:14 AM
  3. Simple Crypter v2
    By SheLLniX in forum Security Tools
    Replies: 0
    Last Post: 08-02-2008, 09:19 AM
  4. Simple Inline Javascript
    By Gen0TypE in forum แนะความรู้ด้าน Programming ต่างๆ
    Replies: 0
    Last Post: 05-01-2008, 12:52 PM
  5. Simple Virus Code
    By asylu3 in forum C/C++,C#,VC++,MFC,Win32
    Replies: 0
    Last Post: 01-01-1970, 07:00 AM

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •