آلفامتیک

آلفامتیک

دشوار

دستورالعمل‌ها

یک پازل «آلفامتیک» داده شده است؛ پاسخ درست را پیدا کنید.

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

برای مثال SEND + MORE = MONEY:

  S E N D
  M O R E +
-----------
M O N E Y

جایگزین کردن این‌ها با عددهای معتبر چنین نتیجه‌ای می‌دهد:

  9 5 6 7
  1 0 8 5 +
-----------
1 0 6 5 2

این صحیح است چون هر حرف با عددی متفاوت جایگزین می‌شود و واژه‌ها پس از تبدیل به عدد، یک جمع معتبر می‌سازند.

هر حرف باید نماینده‌ی یک رقم متفاوت باشد و رقم نخست یک عدد چندرقمی نباید صفر باشد.

پیاده‌سازی

Note

ممکن است بخواهید (یا نخواهید!) در راه‌حل خود تابع permutations(a, t) را از Combinatorics.jl فراخوانی کنید.

  • اگر در ویرایشگر آنلاین کار می‌کنید، می‌توانید permutations(a ,t) را آزادانه فراخوانی کنید، چون از قبل در فضای نام قرار دارد. می‌توانید کد منبع را در زبانه‌ی با برچسب permutations.jl ببینید.
  • اگر به‌صورت محلی کار می‌کنید، برای دسترسی به نسخه‌ای از permutations(a, t) که همان‌جا قرار دارد، include("permutations.jl") را به بالای فایل راه‌حل خود اضافه کنید.
Caution

اگر به‌صورت محلی از Combinatorics.jl نسخه‌ی v1.0.3 استفاده کنید، permutations(a, t) روی آزمون‌های بزرگ بسیار کند است. یا از فایل ارائه‌شده‌ی permutations.jl استفاده کنید، یا به Combinatorics.jl با v≥1.1.0 ارتقا دهید، یا به v1.0.2 «تنزل» دهید.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Julia Exercism

آماده‌اید آلفامتیک را شروع کنید؟

در Exercism ثبت‌نام کنید تا Julia را همراه با 35 مفهوم128 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.