Esempio n. 1
0
def main():
    n = int(sys.argv[1])
    dist = stdarray.readFloat1D()
    cx = stdarray.readFloat2D()
    cy = stdarray.readFloat2D()
    x = 0.0
    y = 0.0

    #stddraw.setPenRadius(0.1)
    #stddraw.setPenColor(stddraw.ORANGE)
    #stddraw.point(0, 0)

    #stddraw.setPenRadius(0.1)
    #stddraw.setPenColor(stddraw.GREEN)
    #stddraw.point(1, 1)

    #stddraw.setPenRadius(0.1)
    #stddraw.setPenColor(stddraw.BLUE)
    #stddraw.point(0.5, 0.5)

    #stddraw.setPenColor(stddraw.BLACK)
    #stddraw.point(0.5, 0.288)

    stddraw.setPenRadius(0.003)
    #stddraw.setPenColor(stddraw.RED)

    for i in range(n):
        r = stdrandom.discrete(dist)
        x0 = cx[r][0] * x + cx[r][1] * y + cx[r][2]
        y0 = cy[r][0] * x + cy[r][1] * y + cy[r][2]
        x = x0
        y = y0
        stddraw.point(x * 0.7 + 0.25, y * 0.7 + 0.25)

    stddraw.show()
Esempio n. 2
0
    def rand(self, kgram):
        """
        Return a random character following kgram.
        """

        a = list(self._st[kgram].values())
        b = list(self._st[kgram].keys())
        for i in range(len(a)):
            a[i] = a[i] / float(sum(a))
        d = stdrandom.discrete(a)
        return b[d]
 def rand(self, kgram):
     """
     Use stdrandom.discrete() to randomly select and return a
     random character following kgram.
     """
     if kgram not in self._st:
         raise ValueError()
     t = self._st[kgram]
     s = sum(list(t.values()))
     a = list(self._st[kgram].values())
     # a = stdarray.create1D(len(t.values(), 0))
     for i in range(len(a)):
         a[i] = (list(t.values()))[i] / s
     r = stdrandom.discrete(a)
     return list(t.keys())[r]
Esempio n. 4
0
    def rand(self, kgram):
        """
        Returns a random character following kgram. Raises an error if kgram
        is not of length k or if kgram is unknown.
        """

        if self._k != len(kgram):
            raise ValueError('kgram ' + kgram + ' not of length ' +
                             str(self._k))
        if kgram not in self._st:
            raise ValueError('Unknown kgram ' + kgram)

        k = self._st[kgram].keys()
        v = self._st[kgram].values()
        d = stdrandom.discrete(v)
        return k[d]
Esempio n. 5
0
def main():
    n = int(sys.argv[1])
    dist = stdarray.readFloat1D()
    cx = stdarray.readFloat2D()
    cy = stdarray.readFloat2D()
    x = 0.0
    y = 0.0
    stddraw.setPenRadius(0.0)
    for i in range(n):
        r = stdrandom.discrete(dist)
        x0 = cx[r][0] * x + cx[r][1] * y + cx[r][2]
        y0 = cy[r][0] * x + cy[r][1] * y + cy[r][2]
        x = x0
        y = y0
        stddraw.point(x, y)
    stddraw.show()
    def rand(self, kgram):
        """
        Returns a random character following kgram. Raises an error if kgram
        is not of length k or if kgram is unknown.
        """

        if self._k != len(kgram):
            raise ValueError('kgram ' + kgram + ' not of length ' +
                             str(self._k))
        if kgram not in self._st:
            raise ValueError('Unknown kgram ' + kgram)
        # get a, b by list _st with key(), value
        a = list(self._st[kgram].keys())
        b = list(self._st[kgram].values())
        # return a with index of random b
        return a[stdrandom.discrete(b)]
Esempio n. 7
0
    def rand(self, kgram):
        """
        Returns a random character following kgram. Raises an error if kgram
        is not of length k or if kgram is unknown.
        """

        if self._k != len(kgram):
            raise ValueError('kgram ' + kgram + ' not of length ' +
                             str(self._k))
        if kgram not in self._st:
            raise ValueError('Unknown kgram ' + kgram)
        prob= []
        total=self.kgram_freq(kgram)
        for c in self._st[kgram].values():
            prob +=[c / total]
        i= stdrandom.discrete(prob)
        return list(self._st[kgram].keys())[i]
Esempio n. 8
0
    def rand(self, kgram):
        """
        Returns a random character following kgram. Raises an error if kgram
        is not of length k or if kgram is unknown.
        """

        if self._k != len(kgram):
            raise ValueError('kgram ' + kgram + ' not of length ' +
                             str(self._k))
        if kgram not in self._st:
            raise ValueError('Unknown kgram ' + kgram)
        a = []
        for i in range(0, len(self._st[kgram])):
            a.append(
                float(self._st[kgram].values()[i] /
                      (self.kgram_freq(kgram) * 1.0)))
        highest_prob_char = stdrandom.discrete(a)
        return self._st[kgram].keys()[highest_prob_char]
Esempio n. 9
0
def main(argv):
    t = int(argv[1])
    dist = stdarray.readFloat1D()
    cx = stdarray.readFloat2D()
    cy = stdarray.readFloat2D()
    x = 0.0
    y = 0.0
    #stddraw.createWindow()
    for t1 in range(t):
        r = stdrandom.discrete(dist)
        x0 = cx[r][0] * x + cx[r][1] * y + cx[r][2]
        y0 = cy[r][0] * x + cy[r][1] * y + cy[r][2]
        x = x0
        y = y0
        stddraw.setPenRadius(0.001)
        stddraw.point(x, y)
    stddraw.show()
    stddraw.wait()
Esempio n. 10
0
def main(argv):
    t = int(argv[1])
    dist = stdarray.readFloat1D()
    cx = stdarray.readFloat2D()
    cy = stdarray.readFloat2D()
    x = 0.0
    y = 0.0
    #stddraw.createWindow()
    for t1 in range(t):
        r = stdrandom.discrete(dist)
        x0 = cx[r][0]*x + cx[r][1]*y + cx[r][2]
        y0 = cy[r][0]*x + cy[r][1]*y + cy[r][2]
        x = x0
        y = y0
        stddraw.setPenRadius(0.001)
        stddraw.point(x, y)
    stddraw.show()
    stddraw.wait()
Esempio n. 11
0
def twoloadeddice(a=[]):
    a1 = stdrandom.discrete(a)
    a2 = stdrandom.discrete(a)
    return a1 + a2 + 2  #a1和a2取值范围为0-5,所以加2
Esempio n. 12
0
def main():
    n = int(sys.argv[1])
    dist = stdarray.readFloat1D()
    cx = stdarray.readFloat2D()
    cy = stdarray.readFloat2D()
    x = 0.0
    y = 0.0

    #stddraw.setPenRadius(0.1)
    #stddraw.setPenColor(stddraw.ORANGE)
    #stddraw.point(0, 0)

    #stddraw.setPenRadius(0.1)
    #stddraw.setPenColor(stddraw.GREEN)
    #stddraw.point(1, 1)

    #stddraw.setPenRadius(0.1)
    #stddraw.setPenColor(stddraw.BLUE)
    #stddraw.point(0.5, 0.5)

    #stddraw.setPenColor(stddraw.BLACK)
    #stddraw.point(0.5, 0.288)

    stddraw.setPenRadius(0.003)
    #stddraw.setPenColor(stddraw.RED)

    for i in range(n):
        r = stdrandom.discrete(dist)
        x0 = cx[r][0] * x + cx[r][1] * y + cx[r][2]
        y0 = cy[r][0] * x + cy[r][1] * y + cy[r][2]
        x = x0
        y = y0
        #cos -sin  x
        #sin cos   y
        angle = (2 * 3.14) / 360 * i

        dvd = 4

        if (i % dvd == 0):
            stddraw.setPenColor(stddraw.BLUE)
            angle = 0

        if (i % dvd == 1):
            stddraw.setPenColor(stddraw.RED)
            angle = 22.5

        if (i % dvd == 2):
            stddraw.setPenColor(stddraw.GREEN)
            angle = 45

        if (i % 4 == 3):
            stddraw.setPenColor(stddraw.ORANGE)
            angle = -22.5

        x_r = x - 0.5
        y_r = y - 0.288

        x_1 = x_r * math.cos(angle) - y_r * math.sin(angle)
        y_1 = x_r * math.sin(angle) + y_r * math.cos(angle)

        stddraw.point(x_1 * 0.5 + 0.5, y_1 * 0.5 + 0.5)
        #stddraw.point(x-0.5, y-0.288)

        #print(str(x_1) + "_" + str(y_1))

    stddraw.show()
Esempio n. 13
0
 def next_char(self, k_gram: str) -> chr:
     node: Node = self._root
     for ch in k_gram:
         node = node.get_son(ch)
     idx = stdrandom.discrete(list(node.get_letters_count().values()))
     return list(node.get_letters_count().keys())[idx]
Esempio n. 14
0
 def next_char(self, k_gram: str) -> chr:
     idx = stdrandom.discrete(self._k_gram_letter[k_gram])
     return chr(idx)
Esempio n. 15
0
#n = stdio.readInt()
#stdio.readInt() # Discard the second int of standard input.

# Read the transition matrix from standard input.
# p[i][j] is the probability that the surfer moves from
# page i to page j.
#p = stdarray.create2D(n, n, 0.0)
p = stdarray.readFloat2D()
# Perform the simulation, thus computing the hits array.
# hits[i] is the number of times the surfer hits page i.
n = len(p[0])
hits = stdarray.create1D(n, 0)
page = 0  # Start at page 0.
for i in range(moves):
    # Make one random move.
	page = stdrandom.discrete(p[page])
	hits[page] += 1

# Write the page ranks.
for v in hits:
    stdio.writef("%8.5f", 1.0 * v / moves)
stdio.writeln()

#-----------------------------------------------------------------------

# python transition.py < tiny.txt | python randomsurfer.py 100
#  0.26000 0.27000 0.18000 0.26000 0.03000

# python transition.py < tiny.txt | python randomsurfer.py 10000
#  0.27410 0.26500 0.14570 0.24890 0.06630
Esempio n. 16
-1
def main():
    n = int(sys.argv[1])
    dist = stdarray.readFloat1D()
    cx = stdarray.readFloat2D()
    cy = stdarray.readFloat2D()
    x = 0.0
    y = 0.0
    stddraw.setPenRadius(0.0)
    for i in range(n):
        r = stdrandom.discrete(dist)
        x0 = cx[r][0]*x + cx[r][1]*y + cx[r][2]
        y0 = cy[r][0]*x + cy[r][1]*y + cy[r][2]
        x = x0
        y = y0
        stddraw.point(x, y)
    stddraw.show()