一、关于随机数的练习

1.随机生成一个最大值到最小值之间的整数

 proc random {min max} {
return [expr round(($max-$min)*rand()+$min)]
}

2.生成num个min到max之间的不重复的随机整数

proc randomUnique {min max num} {
array set arr {}

#如果要求生成的数量超过max和min相减的个数+1
if {$num>[expr $max-$min+1]} {
return ""
}

#当生成的随机数量没有达到要求的数量,调用生成随机整数的函数
while {[array size arr]<$num} {
set x [random $min $max]
set arr($x) ""
}
return [array names arr]
}

3.随机的小写字母

proc randLow {} {
return [format %c [random ]]
}

4.随机的大写字母

proc randHigh {} {
return [format %c [random ]]
}

5.随机生成一个列表中的内容

proc randList {lst} {
set id [random [expr [llength $lst]-]]
return [lindex $lst $id]
}

6.生成一个随机的小写或者大写字母

proc randLH {} {
return [rand[randList {Low High}]]
}

7.生成一个随机的大写、小写字母或数字

proc randLHN {} {
return [rand[randList {Low High Num}]]
}

8.生成一个由小写、大写、数字构成的字符串,长度为在minLen和maxLen之间的随机值

proc randStrLHN {minLen maxLen} {
set len [random $minLen $maxLen]
set str ""
for {set i } {$i<$len} {incr i} {
append str [randLHN]
}
return $str
}

TCL语言笔记:TCL练习的更多相关文章

  1. TCL语言笔记:TCL基础语法

    一.什么是TCL Tcl 全称是 Tool command Language.它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握. Tcl 语言是一个解释性语言,所谓解释性是指不象其 ...

  2. TCL语言笔记:TCL中的数组

    一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储 ...

  3. TCL语言笔记:TCL中的控制结构命令

    一.引言 控制结构允许程序根据不同的状态.条件和参数来选择不同的处理和执行路径,从而使代码具有更强的灵活性.健壮性和可读性. Tcl 提供了 if.if/else.if/elseif.foreach. ...

  4. TCL语言笔记:TCL中的数学函数

    一.TCL数学函数列表 函数名 说明 举例 abs(arg) 取绝对值 set a –10  ; #a=-10 set a [expr abs($a)]; # a=10 acos(arg) 反余弦 s ...

  5. TCL语言笔记:TCL中的列表操作

    一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命 ...

  6. TCL语言笔记:TCL中的String命令

    一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.strin ...

  7. Tcl语言笔记之二

    1,表达式 1.1 操作数 TCL表达式的操作数通常是整数或实数.整数一般是十进制的, 但如果整数的第一个字符是0(zero),那么TCL将把这个整数看作八进制的,如果前两个字符是0x则这个整数被看作 ...

  8. Tcl语言笔记之一

    1,一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开 2,置换 substitution %set y x+100                               // ...

  9. TCL语言笔记:TCL练习二

    一.练习 1.二进制转十进制 proc b2d {b} { ;set len [string length $b] } {$i<$len} {incr i} { incr sum [expr , ...

随机推荐

  1. python: 实现sha1小工具

    File1: sha1.py File2: sha1.bat ------------------ File1: sha1.py import hashlib import os,sys def Ca ...

  2. C#中窗体的互相访问

    1.在父窗体中构造子窗体对象时,将父窗体传递过去: 如:FrmSub frm=new FrmSub(this);//this代表父窗体 2.将父窗体中要访问的变量和方法修改为public 3.在子窗体 ...

  3. 1107. Social Clusters (30)

    When register on a social network, you are always asked to specify your hobbies in order to find som ...

  4. (转)《深入理解java虚拟机》学习笔记10——并发编程(二)

    Java的并发编程是依赖虚拟机内存模型的三个特性实现的: (1).原子性(Atomicity): 原子性是指不可再分的最小操作指令,即单条机器指令,原子性操作任意时刻只能有一个线程,因此是线程安全的. ...

  5. Oracle 异常处理

    1.什么是异常 在PL/SQL中的一个警告或错误的情形都可被称为异常.包括编译时错误(PLS)和运行时错误(ORA).一个异常通常包含一个错误代码和错误文本,分别指示异常的编号和具体错误信息.   异 ...

  6. DB天气app冲刺二阶段第十天

    昨天困到不行了 所以就写了那么几句..所以今天好好写写了要.. 今天的收获了一个很重要的问题 就还是api接口的事情,以前的那个接口虽然能用但是总是不稳定,今天由决定百度的一下然后就发现了一个很好用的 ...

  7. webview加载本地html

    //webView.loadUrl("file:///android_asset/index.html"); 加载assets目录中含有的index.html  webView.l ...

  8. Text selection in div(contenteditable) when double click

    背景: 在最近项目中,碰到一个问题:有一个可编辑的div需要双击时可编辑,blur或者回车时将编辑结果保存.你可能注意到双击时,文字会被选中,可编辑区域不会focus到光标位置.考虑到兼容性问题,写了 ...

  9. Module模式 - 深入了解Javascript

    /* Modelu模式 优点:效率高,代码少,加载速度快,松耦合允许并行加载,提升下载速度 缺点:初始化时间久一点 */ //一.基础用法 var calculate = function (eq) ...

  10. 3243: [Noi2013]向量内积 - BZOJ

    Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: 现有 n 个d 维向量x1,...,xn ,小喵喵想知 ...