حاسبة النظام الثلاثي المتوازن
تحوّل حاسبة النظام الثلاثي المتوازن العدد الصحيح العشري المعتاد إلى تمثيل أساسه ثلاثة، وتكون قيم خاناته الثلاثية ناقص واحد وصفر وزائد واحد، وتُكتب بالرموز - و0 و+.
شغّل الأداة مجانًا
كما تفك هذا الترميز لاستعادة العدد الصحيح. وإلى جانب الصيغة القياسية، تعرض النتيجة التحليل الموقع إلى قوى الثلاثة، وعدد الخانات الكلي، وعدد الخانات غير الصفرية، والتمثيل المنفي مباشرة. وبذلك يمكنكم تعلّم هذا النظام، والتحقق من الخوارزميات، وفهم سبب قدرة الخانات الموقعة على تبسيط بعض العمليات الحسابية وتصميمات العتاد.
كيفية قراءة تمثيل ثلاثي متوازن
النظام الثلاثي المتوازن ترميز موضعي يعتمد على قوى الثلاثة، لكن كل موضع يمكن أن يساهم بقيمة -1 أو 0 أو +1 مضروبة في قيمته المكانية. تكتب هذه الحاسبة الخانات الثلاثية بالرموز - و0 و+. ومن اليمين إلى اليسار تكون القيم المكانية 3^0 ثم 3^1 ثم 3^2 وهكذا. ويجعل التحليل المعروض مساهمة كل خانة واضحة. فمثلًا، تساهم الخانة الموجبة في الموضع 3^3 بقيمة +27، بينما تساهم الخانة السالبة في الموضع 3^2 بقيمة -9. اجمعوا جميع المساهمات غير الصفرية لاستعادة العدد العشري الصحيح. وعلى خلاف العدد السالب العادي في الأساس ثلاثة، لا يحتاج العدد الثلاثي المتوازن السالب إلى إشارة منفصلة، لأن المساهمات السالبة مشفرة أصلًا داخل خاناته. ينتج المحول صيغة قياسية واحدة، ويحذف الأصفار الابتدائية الزائدة، ويمثل الصفر بخانة 0 واحدة. وعند فك الترميز، أدخلوا سلسلة متصلة لا تحتوي إلا على + و0 و-. وتكون النتيجة العشرية دائمًا عددًا صحيحًا آمنًا ودقيقًا من دون تقريب الفاصلة العائمة.
طريقة تحويل الأعداد الصحيحة العشرية
يستخدم الترميز القسمة المتكررة على ثلاثة مع باقٍ متوازن. يمكن أن يكون الباقي العادي صفرًا أو واحدًا أو اثنين، لكن النظام الثلاثي المتوازن يستبدل الباقي اثنين بالقيمة -1، وينقل +1 إلى الموضع التالي، لأن 2 تساوي -1 مضافًا إليها 3. ولذلك تخرج الخوارزمية 0 عندما يكون الباقي صفرًا، و+ عندما يكون واحدًا، و- عندما يكون اثنين بعد تطبيق النقل. تعمل هذه القاعدة مع الأعداد الصحيحة الموجبة والسالبة، وتختزل في النهاية أي عدد صحيح آمن إلى صفر. أما فك الترميز فيطبق العملية العكسية من اليسار إلى اليمين: يضرب القيمة المتراكمة في ثلاثة، ثم يضيف قيمة الخانة الحالية. وتستخدم العمليتان داخليًا حسابًا صحيحًا دقيقًا. تعرض النتيجة أيضًا العدد الإجمالي للخانات وعدد الخانات غير الصفرية. ويفيد القياس الثاني عند دراسة الصيغ الموقعة المتناثرة، لأن المواضع الصفرية لا تضيف أي مساهمة. تُرفض القيم الواقعة خارج النطاق الآمن، وكذلك الكسور والأسس والمسافات داخل السلسلة والرموز غير المعروفة، ويصدر عنها خطأ إدخال واضح.
لماذا قد تبسط الخانات الموقعة العمليات الحسابية
أوضح ميزة هي النفي: بدّلوا كل + بالرمز -، وكل - بالرمز +، واتركوا الصفر كما هو. لا توجد خانة إشارة مستقلة، ولا حاجة إلى عملية متمم ضمن عرض كلمة ثابت، ولذلك تعيد الحاسبة التمثيل المنفي مباشرة. كما تجعل الخانات الموقعة الكميات الموجبة والسالبة متناظرة، وهذا مفيد في شرح الطرح أو تصميم خوارزميات تختار قوة قريبة من قوى الثلاثة ثم تعوض الفرق بخانة سالبة. قد يستمر حدوث النقل أثناء الجمع، لكن الخانات المتوازنة توفر قواعد محلية متناظرة، ويمكنها تقليل سلاسل النقل الطويلة في اتجاه واحد ضمن بعض التصميمات الحسابية. ويبرز عدد الخانات غير الصفرية فكرة عملية أخرى: يمكن التعبير عن الضرب في ثابت بواسطة جمع قوى الثلاثة وطرحها مع تجاهل المواضع الصفرية. لا يُعد النظام الثلاثي المتوازن بديلًا شاملًا للنظام الثنائي، ولا تدعي النتيجة أنه يسرّع كل جهاز. بل هو أداة دقيقة لدروس أنظمة الأعداد، وتجارب الخانات الموقعة، وتمارين البرمجة، والتحقق من الحساب اليدوي. استخدموا التحليل لمراجعة القيمة والتمثيل ذي الإشارات المبدلة للتأكد من النفي فورًا.
حالات الاستخدام
تعليم الترميز الموضعي الموقع
بيّنوا كيف تجتمع المساهمات السالبة مع قوى الثلاثة من دون استخدام إشارة مستقلة.
التحقق من شيفرة التحويل
قارنوا التنفيذ بنتائج حتمية للقيمة العشرية والخانات القياسية والتحليل والنفي.
استكشاف التمثيلات الحسابية
افحصوا الخانات غير الصفرية والإشارات المبدلة عند دراسة الثوابت المتناثرة أو الطرح أو العتاد المتوازن.
الأسئلة الشائعة
ما الرموز التي تستخدمها هذه الحاسبة؟
تستخدم + للدلالة على زائد واحد، و0 للصفر، و- لناقص واحد. ويمثل كل موضع قوة من قوى الثلاثة.
كيف يُدخل عدد ثلاثي متوازن سالب؟
استخدموا خانات سالبة داخل التمثيل. لا توجد إشارة ابتدائية منفصلة، بل تتكون السلسلة المتصلة من + و0 و- فقط.
لماذا يتحول الباقي اثنان إلى خانة سالبة؟
لأن 2 يمكن كتابتها على صورة -1 مع مجموعة 3 منقولة. تصبح الخانة الحالية - ويزداد الموضع التالي بمقدار واحد.
كيف يُجرى النفي؟
بدّلوا + و- في كل موضع، واتركوا كل 0 من دون تغيير. يعرض الحقل negated_balanced_ternary النتيجة.
ما نطاق القيم المدعوم؟
يجب أن تبقى القيم العشرية والنتائج المفكوكة ضمن حدي الأعداد الصحيحة الآمنة السالب والموجب في JavaScript، شاملين.
ما تكلفة الاستخدام؟
يمكنكم تشغيلها مجانًا في المتصفح على هذه الصفحة. تبلغ تكلفة كل طلب API مقدار $0.002 لكل عنصر.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/balanced-ternary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"42","direction":"to_balanced_ternary"}'const res = await fetch("https://api.kit.forhosting.com/dev/balanced-ternary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "42",
"direction": "to_balanced_ternary"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/balanced-ternary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "42",
"direction": "to_balanced_ternary"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/balanced-ternary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"42","direction":"to_balanced_ternary"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"42","direction":"to_balanced_ternary"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/balanced-ternary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"value": "42",
"direction": "to_balanced_ternary"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.balanced_ternary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_abs | 9007199254740991 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |