HBKodak

55 Reputation

4 Badges

3 years, 94 days

MaplePrimes Activity


These are questions asked by HBKodak

Problem 4. 
Given that  m = pq where p and q are primes and that 
                   "phi(m) = (p - 1)*(q - 1)"

. Suppose that 
                "m = 10^100 + 598*10^50 + 67497"

 and  
             "phi(m) = 10^100 + 596*10^50 + 66900"

. Find p and q.  Check that the factors you find are indeed primes. 

[Hint: You have two equations and two unknowns.]

Problem 5.

Definition. The q-binomial coefficient ---denoted by qbinomial(n,k,q) --is defined by the formula
      qbinomial(n,k,q)    =       
"Product(q^i - 1, i = n - k + 1 .. n)/Product(q^i - 1, i = 1 .. 

   k)"

qbinomial(n,k,q) is a polynomial of degree k*(n-k) in the variable q. These polynomials are also called Gaussian polynomials or Gaussian  coefficients. They occur in various places in mathematics. For example qbinomial(n,k,q) is the number of k-dimensional subspaces of an n-dimensional vector space over a field with q elements.  An example:  qbinomial(6,3,q)  is the polynomial 

"q^9 + q^8 + 2*q^7 + 3*q^6 + 3*q^5 + 3*q^4 + 3*q^3 + 2*q^2 + q 

   + 1"

(a) Write a procedure to find qbinomial(n,k,q) and check to see that it agrees with the above for n=6  and k=3.  Note that to get nice output you will need to simplify, expand and sort the expression.

(b) Check whether or not the sequence of coefficients of the Gaussian polynomial qbinomial(n,k,q) is unimodal for  0 =< n < =10 and 0=< k < =n.  Do not print out all these in your final work. Just write a program to do the checking.  Have it print out the number of pairs (n,k) for which qbinomial(n,k,q) 's coefficients are not unimodal. This is a number from 0 to 66.

[Hint: You may use the following to convert the coefficients of a polynomial f in the variable q to a list:
>L:=[seq(coeff(f,q,i),i=0..degree(f,q))]; ]

Definition: A list or sequence of numbers 
                             "a[1]"


                             "a[2]"

, ..., 
                             "a[n]"

 is unimodal if there is an index i such that 
                         
                             "a[1]"

 <= 
                             "a[2]"

 <= . . . <= 
                             "a[i]"

 >= 
                           "a[i + 1]"

 >= 
                           "a[i + 2]"

 >= . . . >= 
                             "a[n]"


That is, the sequence is non-decreasing up to some point after which it is non-increasing. Note that i can be 1 or n.  A constant sequence is considered to be unimodal.

Examples of unimodal lists:

         [1, 1, 1, 1, 1],  
         [1,2,3,4,5,4,3,2,1], 
         [1, 2, 2, 3, 4, 5, 5, 5],   
         [5, 5, 4, 4, 3, 3, 1],   
         [1, 2, 2, 3, 3, 3, 4, 4, 2, 2, 1, 1, 1]

Examples of lists that are not unimodal:

          [1, 0, 1, 0], 
          [1, 1, 2, 2, 3, 4, 5, 2, 2, 6, 4, 2, 2, 1, 0]

(a) Write a procedure unimodal to check whether or not a list of numbers is unimodal. The input should be a list and the output should be true or false. 

One way to do this is to first write procedures called  increasing and decreasing which will check whether or not a sequence is non-decreasing (
                             "a[1]"

 <= 
                             "a[2]"

 <=...) or non-increasing (
                             "a[1]"

>= 
                             "a[2]"

>=...). Then for a list L use these procedures to check the two parts L[1..i] and L[i..n], n=nops(L) for each i. If you find an i such that the first list is "increasing" and the second is "decreasing" then you can return true. 

I have up to here.

I need help with this part.

For n from 10 to 15  check whether or not the sequence of binomial coefficients  

[binomial(n,0), binomial(n,1), binomial(n,2), . . ., binomial(n,n)]

is unimodal. 

1 2 Page 2 of 2