آموزشمطالب ویژه

هوش مصنوعی با پایتون – بخش هفتم – برنامه‌نویسی منطقی

 

 

بررسیِ اول بودنِ اعداد

با کمک برنامه‌نویسی منطقی، ما می‌توانیم اعداد اول را بین لیستی از اعداد پیدا کنیم و همچنین می‌توانیم اعداد اول را تولید کنیم. کد پایتون داده‌شده در زیر اعداد اول را از بین لیستی از اعداد پیدا خواهد کرد و همچنین ۱۰ عدد اول تولید خواهد نمود.

ابتدا پکیج‌هایی را که در ادامه می‌آید نصب می‌کنیم:

from kanren import isvar, run, membero

from kanren.core import success, fail, goaleval, condeseq, eq, var

from sympy.ntheory.generate import prime, isprime

import itertools as it

 

حالا ما تابعی به نام prime_check تعریف خواهیم کرد که اول بودن اعداد را بر اساس داده‌ای که می‌گیرد بررسی خواهد کرد.

def prime_check(x):

if isvar(x):

   return condeseq([(eq,x,p)] for p in map(prime, it.count(1)))

else:

   return success if isprime(x) else fail

حالا باید متغیری را که در این مثال استفاده می‌شود، اعلان کنیم:

x = var()

print((set(run(0,x,(membero,x,(12,14,15,19,20,21,22,23,29,30,41,44,52,62,65,85)),

(prime_check,x)))))

print((run(10,x,prime_check(x))))

خروجی کد بالا در ادامه آمده است:

{۱۹, ۲۳, ۲۹, ۴۱}

(۲, ۳, ۵, ۷, ۱۱, ۱۳, ۱۷, ۱۹, ۲۳, ۲۹)

قسمت‌های دیگر مقاله را از لینک‌های زیر بخوانید:

هوش مصنوعی با پایتون – بخش هفتم – برنامه‌نویسی منطقی (قسمت اول)

هوش مصنوعی با پایتون – بخش هفتم – برنامه‌نویسی منطقی (قسمت دوم)

هوش مصنوعی با پایتون – بخش هفتم – برنامه‌نویسی منطقی (قسمت آخر)

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا