Sponsored Content
Top Forums Shell Programming and Scripting Unix random number generate in given range Post 302541279 by tukuyomi on Saturday 23rd of July 2011 12:56:46 PM
Old 07-23-2011
For the heck of it, using sh and /dev/random, or when shell does not have $RANDOM
Code:
#!/bin/sh

if [ -z "$1" ]; then a=0; b=65536; else b=$((1+$1)); fi
[ -z "$2" ] || { a="$1"; b=$((1+$2-a));}
echo $((a+$(od -An -dN2 /dev/random)%b))

exit 0

Usage: this_script.sh outputs a value between 0 and 65535

this_script.sh MAX outputs a value between 0 and MAX

this_script.sh MIN MAX outputs a value between MIN and MAX
 

10 More Discussions You Might Find Interesting

1. Programming

How to generate a random number?

How to generate a random integer with specific range(for example, from 1 to 1000)? Also, how to convert a floating point number into a integer? (2 Replies)
Discussion started by: MacMonster
2 Replies

2. Shell Programming and Scripting

generate random number in korn shell

I want to be able to generate a random number within a korn shell script.. Preferably i would like to be able to state how many digits should be in this random number... ie 4 digits or 5 digits etc Any ideas? (2 Replies)
Discussion started by: frustrated1
2 Replies

3. Shell Programming and Scripting

generate random number in perl

Could any one tell how can I generate random number from (0, 100..200) in perl? Thanks! (2 Replies)
Discussion started by: zx1106
2 Replies

4. Shell Programming and Scripting

Generating random number within a specific range (0.5-1.5)

Hello, need a way to generate numbers within 0.5-1.5 range Has to be totally random: 0.6 1.1 0.8 1.5 0.6 and so on.... How to? (10 Replies)
Discussion started by: TehOne
10 Replies

5. Programming

Generate random number

I saw this formula to generate random number between two specified values in shell script.the following. $(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min)) Give a example in book. Generate random number between 6 and 30.like this. $(((RANDOM%30/3+1)*3)) But I have a... (1 Reply)
Discussion started by: luoluo
1 Replies

6. UNIX for Dummies Questions & Answers

how to generate random number as as the first column of a txt file

Dear all, I have a question. I have a txt file say 4000 rows X 1800 Column. I 'd like to creat a new column as the first column which is a column of random numbers (n=4000) thanks a lot! Lin (2 Replies)
Discussion started by: forevertl
2 Replies

7. Shell Programming and Scripting

[Solved] Help with random pick 1000 number from range 1 to 150000

Hi, Do anybody knows how to use awk or any command to random print out 1000 number which start from range 1 to 150000? I know that "rand" in awk can do similar random selection. But I have no idea how to write a code that can random pick 1000 number from range 1 to 150000 :confused: ... (1 Reply)
Discussion started by: perl_beginner
1 Replies

8. Shell Programming and Scripting

Generating Random Number in certain range

Hi there I am trying to generate a random number between 40 and 70 using the shell here is my code so far and it keeps going above 70. all help much appreciated! comp=$(( RANDOM%70+40 )) echo $comp (4 Replies)
Discussion started by: faintingquiche
4 Replies

9. Shell Programming and Scripting

Help with generate a pair of random number

Hi, Is anybody experience generate a pair of random number by using awk command? I wanna to generate a pair of random number (range from 1 to 4124) and repeats it 416 times. Desired output 2 326 123 1256 341 14 3245 645 . . . I did write the below command: awk... (5 Replies)
Discussion started by: perl_beginner
5 Replies

10. OS X (Apple)

Generate a random number in a fully POSIX compliant shell, 'dash'...

Hi all... Apologies for any typos, etc... This took a while but it didn't beat me... Although there are many methods of generating random numbers in a POSIX shell this uses integer maths and a simple C source to create an executable to get epoch to microseconds accuracy if it is needed. I take... (8 Replies)
Discussion started by: wisecracker
8 Replies
sorcsd.f(3)							      LAPACK							       sorcsd.f(3)

NAME
sorcsd.f - SYNOPSIS
Functions/Subroutines recursive subroutine sorcsd (JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, U1, LDU1, U2, LDU2, V1T, LDV1T, V2T, LDV2T, WORK, LWORK, IWORK, INFO) SORCSD Function/Subroutine Documentation recursive subroutine sorcsd (characterJOBU1, characterJOBU2, characterJOBV1T, characterJOBV2T, characterTRANS, characterSIGNS, integerM, integerP, integerQ, real, dimension( ldx11, * )X11, integerLDX11, real, dimension( ldx12, * )X12, integerLDX12, real, dimension( ldx21, * )X21, integerLDX21, real, dimension( ldx22, * )X22, integerLDX22, real, dimension( * )THETA, real, dimension( ldu1, * )U1, integerLDU1, real, dimension( ldu2, * )U2, integerLDU2, real, dimension( ldv1t, * )V1T, integerLDV1T, real, dimension( ldv2t, * )V2T, integerLDV2T, real, dimension( * )WORK, integerLWORK, integer, dimension( * )IWORK, integerINFO) SORCSD Purpose: SORCSD computes the CS decomposition of an M-by-M partitioned orthogonal matrix X: [ I 0 0 | 0 0 0 ] [ 0 C 0 | 0 -S 0 ] [ X11 | X12 ] [ U1 | ] [ 0 0 0 | 0 0 -I ] [ V1 | ]**T X = [-----------] = [---------] [---------------------] [---------] . [ X21 | X22 ] [ | U2 ] [ 0 0 0 | I 0 0 ] [ | V2 ] [ 0 S 0 | 0 C 0 ] [ 0 0 I | 0 0 0 ] X11 is P-by-Q. The orthogonal matrices U1, U2, V1, and V2 are P-by-P, (M-P)-by-(M-P), Q-by-Q, and (M-Q)-by-(M-Q), respectively. C and S are R-by-R nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which R = MIN(P,M-P,Q,M-Q). Parameters: JOBU1 JOBU1 is CHARACTER = 'Y': U1 is computed; otherwise: U1 is not computed. JOBU2 JOBU2 is CHARACTER = 'Y': U2 is computed; otherwise: U2 is not computed. JOBV1T JOBV1T is CHARACTER = 'Y': V1T is computed; otherwise: V1T is not computed. JOBV2T JOBV2T is CHARACTER = 'Y': V2T is computed; otherwise: V2T is not computed. TRANS TRANS is CHARACTER = 'T': X, U1, U2, V1T, and V2T are stored in row-major order; otherwise: X, U1, U2, V1T, and V2T are stored in column- major order. SIGNS SIGNS is CHARACTER = 'O': The lower-left block is made nonpositive (the "other" convention); otherwise: The upper-right block is made nonpositive (the "default" convention). M M is INTEGER The number of rows and columns in X. P P is INTEGER The number of rows in X11 and X12. 0 <= P <= M. Q Q is INTEGER The number of columns in X11 and X21. 0 <= Q <= M. X11 X11 is REAL array, dimension (LDX11,Q) On entry, part of the orthogonal matrix whose CSD is desired. LDX11 LDX11 is INTEGER The leading dimension of X11. LDX11 >= MAX(1,P). X12 X12 is REAL array, dimension (LDX12,M-Q) On entry, part of the orthogonal matrix whose CSD is desired. LDX12 LDX12 is INTEGER The leading dimension of X12. LDX12 >= MAX(1,P). X21 X21 is REAL array, dimension (LDX21,Q) On entry, part of the orthogonal matrix whose CSD is desired. LDX21 LDX21 is INTEGER The leading dimension of X11. LDX21 >= MAX(1,M-P). X22 X22 is REAL array, dimension (LDX22,M-Q) On entry, part of the orthogonal matrix whose CSD is desired. LDX22 LDX22 is INTEGER The leading dimension of X11. LDX22 >= MAX(1,M-P). THETA THETA is REAL array, dimension (R), in which R = MIN(P,M-P,Q,M-Q). C = DIAG( COS(THETA(1)), ... , COS(THETA(R)) ) and S = DIAG( SIN(THETA(1)), ... , SIN(THETA(R)) ). U1 U1 is REAL array, dimension (P) If JOBU1 = 'Y', U1 contains the P-by-P orthogonal matrix U1. LDU1 LDU1 is INTEGER The leading dimension of U1. If JOBU1 = 'Y', LDU1 >= MAX(1,P). U2 U2 is REAL array, dimension (M-P) If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) orthogonal matrix U2. LDU2 LDU2 is INTEGER The leading dimension of U2. If JOBU2 = 'Y', LDU2 >= MAX(1,M-P). V1T V1T is REAL array, dimension (Q) If JOBV1T = 'Y', V1T contains the Q-by-Q matrix orthogonal matrix V1**T. LDV1T LDV1T is INTEGER The leading dimension of V1T. If JOBV1T = 'Y', LDV1T >= MAX(1,Q). V2T V2T is REAL array, dimension (M-Q) If JOBV2T = 'Y', V2T contains the (M-Q)-by-(M-Q) orthogonal matrix V2**T. LDV2T LDV2T is INTEGER The leading dimension of V2T. If JOBV2T = 'Y', LDV2T >= MAX(1,M-Q). WORK WORK is REAL array, dimension (MAX(1,LWORK)) On exit, if INFO = 0, WORK(1) returns the optimal LWORK. If INFO > 0 on exit, WORK(2:R) contains the values PHI(1), ..., PHI(R-1) that, together with THETA(1), ..., THETA(R), define the matrix in intermediate bidiagonal-block form remaining after nonconvergence. INFO specifies the number of nonzero PHI's. LWORK LWORK is INTEGER The dimension of the array WORK. If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the work array, and no error message related to LWORK is issued by XERBLA. IWORK IWORK is INTEGER array, dimension (M-MIN(P, M-P, Q, M-Q)) INFO INFO is INTEGER = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. > 0: SBBCSD did not converge. See the description of WORK above for details. References: [1] Brian D. Sutton. Computing the complete CS decomposition. Numer. Algorithms, 50(1):33-65, 2009. Author: Univ. of Tennessee Univ. of California Berkeley Univ. of Colorado Denver NAG Ltd. Date: November 2011 Definition at line 297 of file sorcsd.f. Author Generated automatically by Doxygen for LAPACK from the source code. Version 3.4.1 Sun May 26 2013 sorcsd.f(3)
All times are GMT -4. The time now is 04:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy