如何创建随机长度的随机字符串

如何创建随机长度的随机字符串

我正在寻找一种方法来创建由随机字母和随机长度组成的字符串。因此,每当使用该命令时,我都会得到不同的字符串。

\documentclass[11pt]{article}
\newcommand{\randomstring}{...}

\begin{document}
\randomstring
\randomstring

\end{document}

输出可能是

卡基乌

或者

哈格夫泽

我想你已经明白了。有人能给我提示一下,从哪里开始吗?

答案1

运用 Manuel 的想法:

\documentclass{article}

\ExplSyntaxOn

\NewExpandableDocumentCommand{\randomstring}{}
 {
  \randomstring_make:
 }

\NewDocumentCommand{\defrandomstring}{sm}
 {
  \IfBooleanTF{#1}{\cs_set:Npe}{\cs_new:Npe} #2 { \randomstring_make: }
 }

\NewDocumentCommand{\setrandomstringlength}{m}
 {
  \int_set:Nn \l_randomstring_length_int { #1 }
 }

\int_new:N \l_randomstring_length_int

\cs_new:Nn \randomstring_make:
 {
  \prg_replicate:nn { \int_rand:n { \l_randomstring_length_int } }
   {
    \int_to_alph:n { \int_rand:n { 26 } }
   }
 }

\ExplSyntaxOff

\setrandomstringlength{26}

\begin{document}

\randomstring

\randomstring

\randomstring

\defrandomstring{\foo}

\texttt{\meaning\foo}

\setrandomstringlength{4}

\randomstring

\randomstring

\defrandomstring*{\foo}

\texttt{\meaning\foo}

\end{document}

我们\setrandomstringlenght将上限设置为字符串的长度。选择一个介于 1 和此上限(含)之间的随机整数,并使用 随机生成尽可能多的字母\int_to_alph:n { \int_rand:n { 26 } }

我们\defrandomstring可以在宏中存储一个随机字符串。变体\defrandomstring*不会检查宏是否已定义(请谨慎使用)。

这适用于任何引擎。

在此处输入图片描述

请参阅先前版本的编辑历史。

相关内容