Dear list,
I want to construct a class of words and I get this error when I call Words
from a function:
def randgoodword(m):
> if m % 2 == 0:
> print("We haven't implemented the even case yet. Come back later!")
> return None
> l = (m-1)/2 -1
> ws = Words(m,l)
> i = randrange(m^l)
> return Word([m]) + ws[i]
> randgoodword(11)
> #==>
> ---------------------------------------------------------------------------
> ValueError Traceback (most recent call last)
> <ipython-input-138-127de63ad022> in <module>
> ----> 1 randgoodword(Integer(11))
> <ipython-input-126-912d8fec37b3> in randgoodword(m)
> 6
> 7 l = (m-Integer(1))/Integer(2) -Integer(1)
> ----> 8 ws = Words(m,l)
> 9
> 10 i = randrange(m**l)
> ~/packages/sage-9.2/local/lib/python3.8/site-packages/sage/combinat/words/words.py
> in Words(alphabet, length, finite, infinite)
> 109 return Words_n(FiniteWords(alphabet), length)
> 110
> --> 111 raise ValueError("do not know how to make a combinatorial
> class of words from your input")
> 112
> 113
>
> ValueError: do not know how to make a combinatorial class of words from
> your input
> #<==
If I do this manually in the command line it works:
i = randrange(11^4); i #==> 3230
> Word([11]) + Words(11, 4)[i] #==> word: 11,3,5,8,8
What am I doing wrong?
version() #==> 'SageMath version 9.2, Release Date: 2020-10-24'
Thanks for any help,
Nikos
--
Οι ελαφροί ας με λέγουν ελαφρόν.
Στα σοβαρά πράγματα ήμουν πάντοτε
επιμελέστατος.
The frivolous can call me frivolous. In serious matters I've always been
most diligent.
K. P. Kavafy
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-support/CAO2SUmKmwr-4DTPY53Bm8T%3DKoMXw8yyJ8Qo_NOT1gPuA4aqwMA%40mail.gmail.com.