Items tagged with length


Hi everybody, 

Neither of these questions is vital but answers will be greatly appreciated

Question 1 :
Is it possible to manage programatically the character fonts in a printf command ?
(for instance to print some piece of text in bold font ... without selecting it and clicking the bold B of the toolbar)

Question 2 :

In order to have a nice render, I use to create my own format for printf command. For instance, when I have to “printf” some text I usually compute its length L and my “printf” format constructor contains a command  like  MyFormat := cat(“%”, L, “a”)

Unfortunately the length(…) command seems to be sensitive to accented characters :
                                     For people not familiar with french, "dégénéré"  (note the acute accents) means "degenerate".
length(“dégénéré”) returns 12
length(“degenere”) returns 8
… which of course leads to a very inelegant render, which is all I wanted to avoid

Why does “length” behave this way ?
Is it possible to bypass this annoyance while ensuring “dégénéré” has length 8 ?

Thanks in advance


I have made an algorithm for producing random walks (only possible to walk one step to either direction except downwards(EDIT: It is possible to go downwards, but it has to be when making a turn to the right or left). The walks are determined by the rand function:

R3:=rand(1..3): (1: go straight on; 2: turn right; 3: turn left)
M:=15; N:=1500;


  local i,j,r,X,Y,L;
  for j from 1 to M do
    X[0,j]:=0;                                # Initialization
    X[1,j]:=1;                                # The first step should still be taken to the point (1,0)
    for i from 2 to N do
      if r=1 then X[i,j]:=2*X[i-1,j]-X[i-2,j]; Y[i,j]:=2*Y[i-1,j]-Y[i-2,j];                   # go straight on
      elif r=2 then X[i,j]:=X[i-1,j]+Y[i-1,j]-Y[i-2,j]; Y[i,j]:=Y[i-1,j]-X[i-1,j]+X[i-2,j];    # turn right
      else X[i,j]:=X[i-1,j]-Y[i-1,j]+Y[i-2,j]; Y[i,j]:=Y[i-1,j]+X[i-1,j]-X[i-2,j];             # turn left
      end if;
      if (X[i,j]=X[j,j] and Y[i,j]=Y[j,j]) then L[j]:=i; break; end if; (This is wrong)
    end do;
  end do:
  return [X,Y,L];
end proc:

The question from is like this:
Modify the algorithm such that it stops at r[i] if r[i] = r[j] for any 0 <= j <= i-2. r=(xi,yi). M is the number of random walks and N is the number of steps. The length of the paths should be stored in L[m] (m=1..M). How do I implement the if-test correctly?

how i

Find the length of the curve in interval of x

My PhD involves generating equations that are very long, in some cases, more than 10 pages long.

For the reader its much more useful to have some of these equations described than presented. One of the descriptions I'd like to use is number of characters and intuitively the command Length feels like it should tell you the number of characters in an expr

However what is written on the help page for this function I don't understand:


For other objects, the length of each operand of expr is computed recursively and added to the number of words used to represent expr. In this way, the measure of the size of expr is returned.

then the example that is given is





See Also



Could anyone explain to me what is meant when it is said length(x+2y)=9? if I try an apply things recursively the expression with the most chatracters i can generate is "x+y+y"which is only 5 characters.

Is there another command that would be better suited to my purposes?








Hi, how i need to modify my command so the length of each word can be detected if enter a sentence instead of 1 word ?

For example, if i entered >> `Hello! Bob`, so the length of each word is [6, 3], so what i need is


>teksbiasa:=`Hello! Bob`;

teksbiasa:=Hello! Bob


nilaiASCII:=[72, 101, 108, 108, 111, 33, 32, 66, 111, 98]

and my E will be >> E:=[72+6, 101+6, 108+6, 108+6, 111+6, 33+6, 32, 66+3, 111+3, 98+3] which is >>

E:= [78, 107, 114, 114, 117, 39, 32, 69, 114, 101]

Thanks for help~=]]
Have a nice day~=]]


Here is my command


> teksbiasa:=`Kriptografi`;




>nilaiASCII:=convert(teksbiasa, bytes);





Anyone know how i need to write the command to add the lenght of the text (len) into each of the number in nilaiASCII?

What is want to get is:


Thank you~=]]


(Some) prime reciprocals have an interesting property. the repeating sequence has length p-1.

eg 7, has repeats after 6.


17 has repeats after 16


of course some primes don''t have this property....

So what I need the experts here is for some code

myproc(17)=16, (and the sequence) 0588235294117647

my go:pinched from

PriDigits := "" || (op(1, evalf(1/17, 50)));

reps := StringTools[Repeats](PriDigits);

lngth := seq(op(3, A), A in [reps]);

the leading 0 (which is part of the sequence)  is a problem.....



Does [Length of output exceeds limit of 1000000] mean that the function couldn't be solved and I have to modify the mathematical model?
If the results are just too long to be displayed, how can I see the results?

Page 1 of 1