表示我们在数学符号编程中使用的字符串

And*_*ech 6 string math notation

现在,我是一名程序员,最近发现他在数学方面有多糟糕,并且从那时起就决定关注它,所以如果我的问题侮辱你的情报我会道歉.

在数学中,是否存在编程中使用的字符串概念?即字符的排列.

举个例子,假设我想将以下内容翻译成数学符号:

let s be a string of n number of characters.
Run Code Online (Sandbox Code Playgroud)

原因是我想在查找字符串的其他内容时使用该表示s,例如其长度:len(s).

你如何在数学中正式代表这样的事情?


说实话,可以说,我想说我想在数学上解释这样一个函数:

fitness(s,n) = 1 / |n - len(s)|
Run Code Online (Sandbox Code Playgroud)

或者用更"编程友好"的方式编写:

fitness(s,n) = 1 / abs(n - len(s))
Run Code Online (Sandbox Code Playgroud)

我用这个函数来解释给定GA的适应度函数是如何工作的; 问题是关于找到5个字符的字符串,我需要根据上面的函数给出的解决方案按照它们的适应度分数按升序排序.

所以我的问题是,你如何用数学符号表示上面的伪代码?

Joh*_*ica 8

您可以使用语言理论的表示法,用于讨论常规语言,无上下文语法,编译器理论等内容.快速概述:

  • 一组字符称为字母表.你可以这样写:"设A是ASCII字母,一组包含128个ASCII字符."

  • 是字符序列.ε是空字符串.

  • 一组字符串被正式称为语言.一个常见的说法是,"让小号大号是在语言的字符串大号 ".

  • 连接字母表会产生字符串集(语言).A表示所有1个字符的字符串,A A也写为A 2,是所有两个字符串的集合.0是该组的所有零长度字符串的并且恰恰0 = {ε}.(它只包含一个字符串,空字符串.)

  • A *是特殊符号,表示字母A上任何长度的所有字符串的集合.也就是说,* = 0123 ....您可以从正则表达式中识别这种表示法.

  • 长度使用绝对值条.字符串s的长度为| s |.

所以对于你的陈述:

让s是一个由n个字符组成的字符串.

你可以写:

一个是一组字符和小号ň是一串ñ字符.s的长度是| s | = n.