Альтернативная форма FactorInteger? (Mathematica)

Вот простой пример, который показывает, как можно отследить, какой кадр в настоящий момент является верхним, и обновлять только те кадры, которые имеются.

Это не единственный и, возможно, даже не лучший способ, но он должен послужить вам отправной точкой.

import tkinter as tk


root = tk.Tk()
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
timer1 = 0
timer2 = 0
frame1 = tk.Frame(root)
frame2 = tk.Frame(root)
frame2.grid(row=0, column=0, sticky='nsew')
frame1.grid(row=0, column=0, sticky='nsew')
frame1.tkraise()

current_active_frame = frame1

lbl1 = tk.Label(frame1, text='Active Counter at: 0')
lbl2 = tk.Label(frame2, text='Active Counter at: 0')
lbl1.grid(row=0, column=0, sticky='nsew')
lbl2.grid(row=0, column=0, sticky='nsew')
tk.Button(frame1, text='Switch to frame 2', command=lambda: raise_frame(frame2)).grid(row=1, column=0, sticky='nsew')
tk.Button(frame2, text='Switch to frame 1', command=lambda: raise_frame(frame1)).grid(row=1, column=0, sticky='nsew')


def raise_frame(frame):
    global current_active_frame
    frame.tkraise()
    current_active_frame = frame


def update_while_active():
    global timer1, timer2
    if current_active_frame == frame1:
        print('frame1')
        timer1 += 1
        lbl1.config(text='Active Counter at: {}'.format(timer1))
    if current_active_frame == frame2:
        print('frame2')
        timer2 += 1
        lbl2.config(text='Active Counter at: {}'.format(timer2))
    root.after(1000, update_while_active)

update_while_active()
root.mainloop()
6
задан stevenvh 18 April 2009 в 18:37
поделиться

3 ответа

Да, например:

Flatten[Map[Table[#[[1]], {#[[2]]}] &, a]]
9
ответ дан 8 December 2019 в 03:28
поделиться

Вот еще один способ сделать это:

rptseq[x_, n_] := Sequence @@ Table[x, {n}]
rptseq @@@ a

Который может быть сжат с помощью лямбда-функции для:

Sequence @@ Table[#1, {#2}] & @@@ a

Ответ zvrba также может быть немного сжат, если вы в такой вещи:

Flatten[Table[#1, {#2}]& @@@ a]

(Теперь, когда я смотрю на это,

6
ответ дан 8 December 2019 в 03:28
поделиться

Вы также можете использовать:

a /. {p_, n_} -> Table[p, {n}] // Flatten

ОБНОВЛЕНИЕ 2017/10/18 :

Мой ответ выше не дает ответа «в случае двух различных простых факторов», как указал Кори Уокер. Это обновление исправляет это:

a /. {p_Integer, n_Integer} -> Table[p, {n}] // Flatten

обратите внимание, что тест, выполненный г-ном Wizard, был сделан с оригинальной версией до этого обновления.

4
ответ дан 8 December 2019 в 03:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: