اطلاعیه

Collapse
No announcement yet.

مشکل در برنامه نویسی؟؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در برنامه نویسی؟؟

    سلام!
    من تعدادی عدد در اختیار دارم که بین این اعداد چند عدد فاصله فاحشی با اعداد مجموعه دارند!می خوام بدونم میشه با یک برنامه این اعداد رو حذف کرد و اعدادی که در یک رنج مشخص هستند رو نگه داشت یا نه؟؟؟؟؟؟؟؟؟؟؟؟
    یک سوال هم اینه که آیا فرمول خاصی برا این کار میشه در اورد که بشه تو برنامه نویسی پیاده کرد؟؟البته من با bascomاین برنامه رو می خوام بنویسم

    یک تعداد عدد با نمودار قرار میدم که مسئله بیشتر روشن بشه!طبق شکل من میخوام اعداد تو رنج 2500 تا 4100 باقی بمونن بقیه حذف بشن!
    فایل دانلود:
    فایل های پیوست شده
    آن عشق که در پرده بماند به چه ارزد؟

    عشق است و همین لذت دیدار و دگر هیچ...

    #2
    پاسخ : مشکل در برنامه نویسی؟؟

    شدن که میشه . برمیگرده به درس آمار و احتمال و میانگین و انحراف معیار این چیزا
    فرمولشون هم که سادست .

    دیدگاه


      #3
      پاسخ : مشکل در برنامه نویسی؟؟

      همون طور که دوستمون گفتن فرمولش وجود داره، فقط باید دقت کنید که در BASCOM نمیشه بیشتر از یک عملگر ریاضی رو در یک خط نوشت و باید اون رو خط به خط بنویسید.
      There is nothing so practical as a good theory. — Kurt Lewin, 1951

      دیدگاه


        #4
        پاسخ : مشکل در برنامه نویسی؟؟

        نشدنی وجود نداره
        کاره راحتی هم هست
        همچین توابعی در کتابخانه math در کدویژن وجود داره اما همونطور که میدونین منو بسکام همدیگرو دوست نداریم
        خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

        دیدگاه


          #5
          پاسخ : مشکل در برنامه نویسی؟؟

          نوشته اصلی توسط حامــد
          شدن که میشه . برمیگرده به درس آمار و احتمال و میانگین و انحراف معیار این چیزا
          فرمولشون هم که سادست .
          من با فرمول آمار امتحان کردم ولی جواب درستی نگرفتم :sad:خطا زیاد بود

          آن عشق که در پرده بماند به چه ارزد؟

          عشق است و همین لذت دیدار و دگر هیچ...

          دیدگاه


            #6
            پاسخ : مشکل در برنامه نویسی؟؟

            امکان نداره . یه چیز بدیهیه .
            میشه اون قسمت مورد نظر از برنامه رو اینجا بذاری ؟

            دیدگاه


              #7
              پاسخ : مشکل در برنامه نویسی؟؟

              برای تشخیص وجود این مقادیر ناهمگون راه های زیادی مثل محاسبه کورتوزیز،rms ،واریانسو.... وجود داره...
              ولی شما علاوه بر تشخیص می خواید حذفشون کنید
              این 2 راه رو امتحان کنید...
              1.از هر مثلا 10 نمونه میانگین بگیرید....میانگین کل رو هم حساب کنید...بعد اون میانگینی که اختلاف زیادی با میانگین کل داره ...دیتاهاش رو حذف کنید
              2.بعد از میانگین گرفتن...مثلا مقادیری که 10 واحد از میانگین بیشتر یا کمتر هستند رو حذف کنید...
              البته هیچ کدوم فکر نکنم دقت خوبی داشته باشه ولی امتحانش ضرر نداره

              دیدگاه


                #8
                پاسخ : مشکل در برنامه نویسی؟؟

                یک روش ساده برای حذف این جیتر ها استفاده از فیلترهاست که پیاده سازیشون توی نرم افزار هم ساده است.
                با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                دیدگاه


                  #9
                  پاسخ : مشکل در برنامه نویسی؟؟

                  من در حالت کلی این کارو انجام دادم:
                  از اعداد میانگین گرفتم،تقسم بر 2 کردم و عدد به دست اومده رو یک بار با میانگین جمع کردم یک بار هم کم کردم تا مقدار ماکزیمم و مینی مم برا مقایسه اعداد به دست بیاد!
                  بعد از اون اومدم اعداد رو بین این بازه مقایسه کردم اگه عددی خارج از این بازه بود حذف کردم،
                  این روش برا اعدادی که کوچک بودن جواب نداد فقط برا اعداد بزرگتر جواب داد :cry2:

                  احتمالا روش من به کفته ی آقای حسنی دقتش کم باشه برا همون جواب نمی گیرم :mrgreen: البته چندین روش رو به همین صورت امتحان شده ولی ان رو که گفتم خطاش کمتر بود



                  آن عشق که در پرده بماند به چه ارزد؟

                  عشق است و همین لذت دیدار و دگر هیچ...

                  دیدگاه


                    #10
                    پاسخ : مشکل در برنامه نویسی؟؟

                    سلام ................

                    من تعدادی عدد در اختیار دارم که بین این اعداد چند عدد فاصله فاحشی با اعداد مجموعه دارند!می خوام بدونم میشه با یک برنامه این اعداد رو حذف کرد و اعدادی که در یک رنج مشخص هستند رو نگه داشت یا نه؟؟؟؟؟؟؟؟؟؟؟؟
                    خانم روشنی میتونم یه سوال بپرسم؟ (میدونم 7/8 تا پست زده شده اما از اول بررسی کنیم ببینیم کجای کار هستیم ..) شما یه سری اعداد دارید که فاصله ی معقول دارن و یه سری داده ی به اصطلاح پرت؛ درسته؟ حالا میخواید داده های پرت رو حذف کنید؟
                    دوستان! مدتی کمتر به سایت میام ..

                    دیدگاه


                      #11
                      پاسخ : مشکل در برنامه نویسی؟؟

                      نوشته اصلی توسط حسام الدین
                      سلام ................

                      من تعدادی عدد در اختیار دارم که بین این اعداد چند عدد فاصله فاحشی با اعداد مجموعه دارند!می خوام بدونم میشه با یک برنامه این اعداد رو حذف کرد و اعدادی که در یک رنج مشخص هستند رو نگه داشت یا نه؟؟؟؟؟؟؟؟؟؟؟؟


                      خانم روشنی میتونم یه سوال بپرسم؟ (میدونم 7/8 تا پست زده شده اما از اول بررسی کنیم ببینیم کجای کار هستیم ..) شما یه سری اعداد دارید که فاصله ی معقول دارن و یه سری داده ی به اصطلاح پرت؛ درسته؟ حالا میخواید داده های پرت رو حذف کنید؟
                      به صورت ساده تر توضیح میدم:
                      من تعدادی عدد در اختیار دارم که فاصله هاشون با هم یکی نیست بین این اعداد تعدادی عدد هست که فاصله فاحشی با این اعداد دارن که من می خوام این عددها رو حذف کنم،مثلا:
                      10 13 11 30 32 36 41 42 47 30 36 50 41 90 92 90 10 100

                      بین این اعداد باید 10 11 13 90 92 100 حذف بشن!مشکل اصلی اینه که چطوری میشه این فاصله رو تشخیص داد ؟؟؟؟؟؟؟؟؟؟
                      یک روش رو که خطای کمتری داشت بالا توضیح دادم، با استفاده از فرمولای امار هم نمی تونم به جواب برسم :sad:

                      ارسال شده ها در: فبریه 12, 2009, 1002 amارسال شده توسط: حامــد
                      قرار دادن نقل قول
                      امکان نداره . یه چیز بدیهیه .
                      میشه اون قسمت مورد نظر از برنامه رو اینجا بذاری ؟


                      مشکل من تو برنامه نویسیش نیست،فعلا نمی تونم مشکل ریاضیشو حذف کنم


                      آن عشق که در پرده بماند به چه ارزد؟

                      عشق است و همین لذت دیدار و دگر هیچ...

                      دیدگاه


                        #12
                        پاسخ : مشکل در برنامه نویسی؟؟

                        اول از همه باید میانگین بگیری و بعدش انحراف معیارو حساب کنی . و بعد اعداد بین "انحراف معیار + میانگین" و "میانگین-انحراف معیار" باقی بمونه و بقیه حذف بشه .
                        یه چیز شبیه این :



                        for i=1 to n
                        sum=sum+a(i)
                        next
                        ave=sum/n
                        sum=0
                        for i=1 to n
                        k=ave-a(i)
                        k=k*k
                        sum=sum+k
                        next
                        v=sum/n
                        v=sqrt(v)
                        k1=ave+v
                        k2=ave-v
                        j=1
                        for i=1 to n
                        if a(i)<k1 and a(i)>k2 then
                        b(j)=a(i)
                        incr j
                        end if
                        next


                        این برنامه رو تو Notepad نوشتم خیلی شکل بسکامی نداره . اما به نظر درسته .
                        فرض بر این بوده که اعداد اولیه تو آرایه A بودن . متغیر K حتما باید Integer باشه ( چون می تونه مقدار منفی داشته باشه ) . اعداد باقیمونده و جدید هم در آرایه B قرار می گیرن .
                        توضیح دیگه اینکه من این برنامه رو با اعدادی که دادی اجرا کردم و نتیجه شد :
                        41،50،36،30،47،42،41

                        دیدگاه


                          #13
                          پاسخ : مشکل در برنامه نویسی؟؟

                          من یه اشتباه کوچیک کرده بودم. دستور ریشه دوم یک متغیر میشه SQR . ( دستور SQRT تو پاسکاله :icon_razz: ) .

                          دوباره این قسمتو می ذارم . متغیرها رو هم تعریف کردم . فقط توضیح بدم که حلقه اول مجموع اعداد رو حساب می کنه . بعد از اون میانگین حساب میشه (Ave) . در حلقه دوم مجموع مربعات تفاضل میانگین و هر عدد محاسبه میشه ( همون فرمول انحراف معیاره که این زیر گذاشتم) . بعد از حلقه طبق فرمول تقسیم بر تعداد اعداد (N) میشه و جذرش محاسبه میشه (انحراف معیار - V) . بعد از اون باید طبق شکل زیر محدوده در بدست آورد (k1 و k2) . تو حلقه آخر هم فقط اعداد مجاز در آرایه B ریخته میشن. تعداد اعداد مجاز هم میشه j-1

                          فرمول انحراف معیار
                          که در آن

                          و اینم شکلی برای واضح شدن مقدار K1 و K2 ( تو این شکل ، µ+σ و µ-σ )


                          اینم اصلاح شده برنامه :


                          Dim I As Byte
                          Dim J As Byte
                          Dim N As Byte
                          Dim Sum As Word
                          Dim K As Integer
                          Dim K1 As Byte
                          Dim K2 As Byte
                          Dim V As Single
                          Dim Ave As Single
                          Dim A(20) As Byte
                          Dim B(20) As Byte


                          For I = 1 To N
                          Sum = Sum + A(i)
                          Next
                          Ave = Sum / N
                          Sum = 0
                          For I = 1 To N
                          K = Ave - a(i)
                          K = K * K
                          Sum = Sum + K
                          Next
                          V = Sum / N
                          V = Sqr(v)
                          K1 = Ave + V
                          K2 = Ave - v
                          J = 1
                          For I = 1 To N
                          If A(i) < K1 And A(i) > K2 Then
                          B(j) = A(i)
                          Incr J
                          End If
                          Next


                          دیدگاه

                          لطفا صبر کنید...
                          X