cebirsel kod Temsil

oy
5

Sanırım bir gazetede kadar yazmak istiyorum küçük algoritmaları bir dizi var. Bunlar nispeten kısa ve öz olmalıdır. Ancak, bunun yerine (la Cormen hatta Knuth à) sözde kod onları yazma, bir tanesi cebirsel gösterimini (daha doğrusal ve daha iyi LaTeX görüntüleme) yazmak istiyorum. Ben bir döngü temsil nasıl örn: bir şey varsa Ancak, ben, bunun için en iyi notasyonu gibi kaynakları bulamıyorum? Eğer? Bir listeye başlığın eklenmesi?

Aranızda bunu sorunla karşılaştı ve bir şekilde bunu münhal?

Teşekkürler.

DÜZENLEME : Teşekkürler, millet. Ben soruyu phrasing de kötü bir iş yaptığını düşünüyor. Matematiksel gösterimde döngüler ve şart-maddeleri bahsediyor için ortak notasyonu nedir: İşte anlaşılır hale umuduyla yine gidiyor? Örneğin, ben kullanabilirsiniz $acc \leftarrow acc \cup \langle i,i+1 \rangle$listenin add yöntemini temsil etmek.

Oluştur 28/01/2010 saat 20:50
kaynak kullanıcı
Diğer dillerde...                            


8 cevaplar

oy
0

Böyle bir şey web sitesinde açıklanır?

Cevap 28/01/2010 saat 20:57
kaynak kullanıcı

oy
1

Sen Haskell bakmak olabilir. Haskell iyi lateks içinde biçimlendirir güzel cebirsel sözdizimi vardır ve hatta, içinde Haskell ile lateks dosyasını derlemek kod sarılı şartıyla olabilir \begin{code}ve \end{code}. Buraya bakın: http://www.haskell.org/haskellwiki/Literate_programming . Diğer diller için okur programlama araçları muhtemelen vardır.

Cevap 28/01/2010 saat 20:59
kaynak kullanıcı

oy
2

Knuth kopyalamak istiyorum. Az bir bilgisayar bilimleri ortamda ondan daha iyi iletişim kurmak için biliyorum.

Cevap 28/01/2010 saat 21:00
kaynak kullanıcı

oy
-1

APL ? Tek sorun birkaç kişi okuyabileceği olmasıdır.

Cevap 28/01/2010 saat 21:00
kaynak kullanıcı

oy
8

Bunu yapma. İnsanların algoritmlerinde hakkında bir makale okurken görmeyi beklediğimiz çıkmaktadırlar. Sen beklenen uygulamaları takip etmelidir; Fikirleriniz hak ettikleri ilgiyi daha olasıdır. Roma'da romalılar gibi davran.

Bir LaTeXed kağıt kodu (ya da olabileceğinden pseudocode) Biçimlendirme çok kolaydır. Örneğin, bakınız LaTeX'te kod biçimlendirme .

Cevap 28/01/2010 saat 21:03
kaynak kullanıcı

oy
1

öğretim üyesi turing makineleri daha iyi bir araca sahip böylece Lisp bir hesaplama modeli matematiksel gösterimi olarak başladı. Böylece lisp, programlama dili doğdu - Kazara, bunun montaj uygulanabilir olduğu ortaya çıktı.

tekrarlama yerine kullanılır: Ama bu açıklar peltek bilgi işlem modeli döngüler olmadığı için aradığınız gerçekten ne sanmıyorum. sözdizimi ayraçları değerlendirmek-bu-ve-yerine-sonuç belirtmek cebir kaynaklanmaktadır. Gerçekten de, bilgisayar Lisp'in modeli ikame temelde - aslında ne cebir.

Gerçekten de, List, Haskell'e ve Erlang gibi en işlevsel diller matematik türetilir. Haskell aslında tip sistemlerini uygulamak için kullanılabileceğini lamda taşı kanıtlayan bir sonucudur. Haskell Yani, Lisp gibi saf matematik doğdu. Ama yine, sözdizimi muhtemelen için kullanılacak gibi değil.

Kesinlikle matematikçiler için Lisp ve Haskell sözdizimi açıklayabilir ve bir "oyun" olarak muamele ederim. döngüler, özyineleme ve Koşullamalar gibi Dil yapılar körlemesine dillerde olduğu gibi uygulanan ziyade oyunun kurallarının dışına kanıtlanmış edilebilir. Bu combinatronics alemlerine, matematik başka dalı haline yol açacak. Nitekim combinatronics, sayıların bile kavramı yerine dil (google Kilisesi Rakamlar) bir yerli bir parçası olmaktan çok oyunun kurallarının dışına inşa edilebilir.

İsterseniz Yani Lisp / Planı, Erlang ve Haskell de bakabilirsiniz. Erlang özellikle istediğinize sözdizimi yakın sahiptir:

add(a,b) -> a + b

Ama benim tavsiyem C benzeri pseudocode yazmaktır. Bu programlama dillerinde en düşük ortak payda tür. Oldukça kolay anlaşılır ve temiz bir sözdizimi vardır. Ve işlev sözdizimi bile matematik fonksiyonları kaynaklanmaktadır. Unutmayın f(x)?

Artı, matematikçiler C yazma için kullanılan, istatistikçiler (bunlar R tercih genellikle gerçi), fizikçiler C yazma için kullanılan yazı C'ye kullanılır, programcılar en az C bakarak için kullanılır (asla ettik kim birkaç biliyorum dokundu ° C).

Aslında bu çizik. Eğer hedef kitle istatistikçiler olan söz. Yaz R

Cevap 28/01/2010 saat 21:47
kaynak kullanıcı

oy
7

Ben eğer-ifadeler matematiksel gösterimde oldukça sık görüyoruz. Bir döngü için olağan bir şey a, tekrarlama ilişki , veya eşdeğer bir işlevi yinelemeli tanımlandığı gibidir.

İşte nasıl Ackermann fonksiyonu , örneğin Wikipedia'da tanımlanır:

A (m, n) = n + 1 m = 0;  Ve A (m-1, 1) m> 0 ve n = 0;  ve A (m,-1, A (m, n-1)) m> 0 ve> 0, n.

o lezzet matematiksel hisseder ve henüz açıkça neredeyse tam olarak yazıldığı gibi onu yazıp bir uygulama olabilir, çünkü bu resim güzel. Buna ulaşabilmek her zaman mümkün değildir.

Döngüler uygun diğer matematiksel notasyon bulunur toplamı için Σ-gösterimini ve set-oluşturucu gösterimde .

Ben bu sorunuza yanıt umut! Amacınız şey yapılır nasıl tarif ve birisi anlama sahip olmaktır Ama eğer, ben muhtemelen matematikçiler denklemleri görmeyi tercih edeceğini varsaymak bir hata olduğunu düşünüyorum. Onlar birbirinin araçları (Turing denklik rağmen) olduğunu sanmıyorum. senin algoritması değiştirilebilir veri yapıları içeriyorsa, prosedürel kod muhtemelen açıklayan denklemler daha iyi olacak.

Cevap 29/01/2010 saat 00:21
kaynak kullanıcı

oy
2

Genel döngüler için bir sembol yoktur; Genellikle kullanacağınız toplamıdır operatörünü . kullanılarak temsil edilmektedir "eğer" etkileri ve "bir listeye bir demet eklemek" için kullanırsınız birliği .

Ancak , genel olarak, ayrıntı biraz mutlaka kötü bir şey değil - bazen özellikle karmaşık algoritmalar için, bu örnekler ve şemalar kullanılarak, düz İngilizce heceleyerek en iyisidir. Bu sigara kodlayıcılar için iki kat-doğrudur.

Bir düşünün: Eğer Öklid 'GCD için algoritma veya Eratosthenes elek üzerinde bir matematik metin kitap okurken, nasıl yazılır? matematiksel sembolleri yalan nerede algoritmanın kanıtı ise genellikle algoritma kendisi nesir içindedir.

Cevap 29/01/2010 saat 02:00
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more