۱۳۸۸/۱۰/۰۸

سیاهپوش در مرگ ارزشها



امروز مثل هر سال برای دید زدنِ نیمه عزاداران داران نیمه نژادپرست تقریبا" کاملا" غیر حسینی شهرمون (آمل) که سرزمین هزار و دو ملت جداگانه ای برای خودش و حتی این روزها رئیس جمهور متفاوتی رو می طلبه با چند تا از تروریست های نام آشنای عزیزم رفتیم بیرون.

روز واقعا" با شکوهی بود. البته نه اون قدر که 365 روز های قبلش با شکوه بود ولی با اطمینان میتونم بگم یه جورای ناجوری, بدجوری از خود نسخه اصلی عاشورا باشکوه تر میزد! می پرسین چرا؟
جواب : بیرق سرد و سنگین فلزی علم جهالت مردم قبیله های عجم نژادپرست شهرمون دور تا دور میدون شهر رو پر کرده بود, فضای حماسی تری از نسخه اورجینال و کربلایی عاشورا می ساخت و کلی ابولفضل نمای بادکنکی fake که به زور دگزا و کروتین و ... جوانمردی رو با گوشت و پوست و سر در حد تاسی خودشون عجین می کردن و تن صدا و ندای هل من ناصرشون با تجمع جنس مونث در دایره ای به مرکز خودشون رابطه نزدیکی داشت, اون علم ها رو علم کرده بودند. صدای مارش سابق روز عزای حسینی و مرثیه خوان ها که سابقا" مرثیه آزادی رو می خوندن جاشونو به درامرهای راک و موسیقی عصر جدید دادن که اگه "همیار محرم"های عزیز پیش-خفتشون نمی کردن جای درام های پشت وانت متحرکی که دستگاه غریب ماهور رو توی عزاداری پر کنه خالی بود!

یکی از مباحث مهم این روز بزرگ و با شکوه که باعث میشه آدم به خود درونش یادآور بشه که واقعا این عاشورا از اصلیش بزرگتر بوده ناهاره که به صورت برنج دانه بلند بهشتی که تحت یه واسط کاربر کاربر پسند به صورت نذر و غیره ارائه میشد. این امر اونقدر مهمه که مثلا امروز ترافیک یکی از روستاهای اطراف آمل (بنظرم اوجی آباد) که به غاز و اردک نذری شهرتی جهانی بین شیعیان جهان داره از مرکز شهر که ترافیک حرکتی دسته های عزادار در اونجا متمرکز بود بیشتر بود. بنظر میرسه این ترافیک به علت خیل عظیم عزاداران داغ دیده بوده که به قصد در آوردن دلی از عزای حسینی جان در کف اخلاص, دل به آب و آتش و ترافیک می زدند.

و تو این محرم وقتی دوستان بجای من داشتن "ضریب منحنی" رو که یکی از عجایب خلقته برای تک تک عزاداران حسینی محاسبه می کردند من تو فکر این بودم که امسال چند نفر تا نیمه های شب چراغ به دست و سبو بر دوش و موبایل رو سایلنت در انتظار طفلان مسلم می مونن. (اگه آمار دقیقی بخواین می تونم بگم تا ساعت 18 همه مسجدهایی که باید آش و باقالی پخش می کردند , کردند و طفلان مسلم زمانمون هم همون قدر برای جماعت عام زمانمون قابل رویت بودن که حضرت مهدی@ برای من قابل رویت هستند.)

پانوشت ها:
• جمال حضرت مهدی@ برای من قابل رویت نیستند.
• تا دیروز بیش از 84 قسمت از One Piece رو تو 4-3 روز خونده بودم. امروز به لطف سرعت جنون آسای اینترنت پر سرعتم که باید 512 می بود تونستم نصف باقیمانده قسمت 85 رو بخونم.
• یه نینجای سیاه پوش یا یه بومی عزادار وقتی داشت از بین جمعیت می خزید زیر لبی می گفت : امروز 4 تا شهید داشته...
• بهشت کشوری در همسایگی ایرانه!
• جدیدا" تو عزاداری های ینگه دنیای ایران (آمل) از ترکیب طبل و سنج موربی همزمان و بصورت پرتابل استفاده میشه که بدجوری Drums می زنه!
• امسال تابع یک مد جدید, حتی خیلی از سید ها هم قرمز به تن کرده بودند ...
• بعد شب یلدا , عاشورا پر درآمدترین روز پیرایشگرهای شهرمونه. (آمار آرایشگرها در تیررس نیست.)

۱۳۸۸/۱۰/۰۱

شبیه سازی

@ پروژه استاد اکبری:
متاسفانه نتونستم جواب درستی برای خطای stack overflow تو سی شارپ اونم برای randomize پیدا کنم ولی تا هفته آینده پروژه استاد اکبری به زبان سی شارپ (in .net 2008) برام نوشته می شه (; :) و متن اونو کامنت نویسی شده تو بلاگم می ذارم تا بشه از کدهاش استفاده کرد.

+ خوندن این مرجع سی شارپ رو هم که کدهاش تو سایت wrox.com هست توصیه می کنم:
http://rapidshare.com/files/149123074/Wrox_Beginning_Microsoft_Visual_C_Sharp_2008_May_2008-BBL.rar

+++

تولید اعداد راندوم در .Net با استفاده از زبان C#

کلاس Random که از کلاس های پایه دات نت (System.Random) است، وظیفه پیاده سازی و تولید اعداد تصادفی ساده (رمز نگاری(cryptography) نشده) را بر عهده دارد.

هیچ کدام از متد های این کلاس به صورت static پیاده سازی نشده اند، به همین جهت باید قبل استفاده ، یک شئ از این کلاس ایجاد کنیم :

Random Rand = new Random();

در این مثال، Rand یک نمونه از کلاس Random است، که از این طریق میتوان به متد های پایه کلاس Random دسترسی پیدا کرد :

در زمان پیاده سازی این کلاس متوجه میشویم که مایکروسافت از 2 constructor برای نوشتن این کلاس استفاده کرده :

1-حالت پایه که بدون پارامتر از کلاس نمونه سازی خواهیم داشت :

مانند مثال قبل :

Random Rand = new Random();

2- حالت دوم که در زمان نمونه سازی باید یک عدد Int32 را به عنوان پارامتر ورودی بدهیم :

مانند :

Random Rand = new Random(100);

حال باید دید فرق حالت 1 و خالت 2 در چیست؟

مایکروسافت در الگوریتم ریاضی که برای تولید اعداد تصادفی استفاده کرده یک عدد (X)

را به عنوان عملوند ورودی الگوریتمش نیاز دارد که به این عدد seed گفته میشود.

در حالت اول مایکروسافت این عدد را از ساعت سیستم میگیرد !

اگر با توابع تولید اعداد تصادفی آشنایی داشته باشید، میدانید که وقتی در یک فرمول تولید اعداد، seed را ثابت در نظر نگیریم هر زمانی که تابع را اجرا کنیم سری اعداد تولید شده با سری قبل ،تفائت دارد. و از آنجایی که در حالت اول این اتفاق میافتد(seed با ساعت سیستم ست میشود) پس هر زمانی بخواهیم از اعداد تصادفی استفاده کنیم سری تولید شده با سری قبل متفاوت است.

اما در حالت دوم ما seed را دستی وارد میکنیم پس همیشه سری اعداد تولید شده با سری های قبلی یکسان است.

اما توجه کنید که وقتی seed را مثلا 100 میدهیم ،به این مفهوم نیست که عدد 100 اولین عدد تولید شده خواهد بود ! عدد 100 فقط یک عملوند است که در فرمول بلند بالای تولید اعداد تصادفی نقش بذر یا ماده اولیه را دارد .

اکنون زمان آن است که اعداد تصادفی خود را تولید کنیم.

برای اینکار متد های مختلفی در اختیار ما قرار دارد :

ما از قبل شئ Rand را تولید کرده بودیم پس :

1-متد Nextbytes

همانطور که مشخص است این متد یک آرایه از نوع بایت به عنوان ورودی میگیرد و تمامی خانه های آرایه را با اعداد تصادفی البته با ظرفیت نوع بایت (0-255)پر میکند برای مثال :

static void Main(string[] args)

{

Random Rand = new Random();

byte[] byteArr=new byte[20];

Rand.NextBytes(byteArr);

for (int i = 0; i <>

{

Console.WriteLine(byteArr[i]);

}

System.Console.Read();

}

در این برنامه ما یک آرایه 20 خانه ای از نوع بایت تعریف کردیم :

byte[] byteArr=new byte[20];

به خانه های آرایه اعداد تصادفی نسبت دادیم :NestBytesسپس با استفاده از متد

Rand.NextBytes(byteArr);

در نهایت نیز خانه های آرایه را پیمایش کرده و چاپ میکنیم :

for (int i = 0; i <>

{

Console.WriteLine(byteArr[i]);

}

خروجی در هر بار اجرا 20 عدد تصادفی متمایز است.(چرا؟!!)

Next2-متد

این متد نیز پیاده سازی های مختلفی دارد :

:1-2

بدون هیچ پارامتری :

Rand.Next()

این متد یک عدد Int غیر منفی را بر میگرداند

2-2 :

مشخص کردن سقف برای تولید اعداد :

در این حالت محدوده اعداد تصادفی تولید شده از 0 است تا یکی قبل از عدد وارد شده .

3-2:

تعیید کف و سقف :

این روش زمانی استفاده میشود که بخواهیم عدد تولید شده از مبنای صفر شروع نشود و بین بازه ای دلخواه باشد مثلا بین 43 تا 99 :

Rand.Next(43, 99);

3-متد NextDouble

همانگونه که از نام این متد پیداست، اعداد تصادفی بین 0 و 1 تولید میکند و هیچ پارامتری نیز نمیگیرد

البته با ضرب کردن مقدار برگشتی این متد با عدد مورد نظر(X)عدد تصادفی تولیدی از نوع اعشاری و در محدوده 0 تا X خواهد بود

مثال جامع برای متد های مختلف :

static void Main(string[] args)

{

Random Rand = new Random();

byte[] bytes = new byte[4];

Rand.NextBytes(bytes);

//پنج عدد تصادفی با در محدوده بایت

Console.WriteLine("Five random byte values:");

foreach (byte byteValue in bytes)

Console.Write("{0, 5}", byteValue);

Console.WriteLine();

//پنج عدد تصادفی تصادفی از نوع صحیح

Console.WriteLine("Five random integer values:");

for (int ctr = 0; ctr <= 4; ctr++)

Console.Write("{0,15:N0}", Rand.Next());

Console.WriteLine();

//پنج عدد تصادفی صحیح بین 0 تا 100

Console.WriteLine("Five random integers between 0 and 100:");

for (int ctr = 0; ctr <= 4; ctr++)

Console.Write("{0,8:N0}", Rand.Next(101));

Console.WriteLine();

//پنج عدد تصادفی صحیح بین 50 تا 100

Console.WriteLine("Five random integers between 50 and 100:");

for (int ctr = 0; ctr <= 4; ctr++)

Console.Write("{0,8:N0}", Rand.Next(50, 101));

Console.WriteLine();

//پنج عدد تصادفی بین 0 تا 1

Console.WriteLine("Five Doubles.");

for (int ctr = 0; ctr <= 4; ctr++)

Console.Write("{0,8:N3}", Rand.NextDouble());

Console.WriteLine();

//پنج عدد تصادفی اعشاری بین 0 تا 5

Console.WriteLine("Five Doubles between 0 and 5.");

for (int ctr = 0; ctr <= 4; ctr++)

Console.Write("{0,8:N3}", Rand.NextDouble() * 5);

System.Console.Read();

}

منبع : MSDN گردآوری: محمد صادق شیروان 1388/10/1




+ نسخه pdf و عکس دار!!
http://www.4shared.com/file/179074143/9d264d57/Random.html