我正在编写一个激情程序,它将确定给定底牌和公共牌的最佳扑克手。由于 A 可以在顺子中双向进行,因此对于给定的 5 张牌组合,我将其编码为 [1, 14]。
我理解递归,但实现它对我来说是另一回事。我正在寻找一个函数,它将递归地将所有 ace 拆分为所有可能的手牌组合,直到所有嵌套列表都用完为止。这显然应该与最多 4 个 A 一起使用,忽略了你很可能不会在意顺子的事实。
hand = [[1, 14], 2, 3, [1, 14], 7]
desired_output = [
[1, 2, 3, 1, 7],
[1, 2, 3, 14, 7],
[14, 2, 3, 1, 7],
[14, 2, 3, 14, 7]
]
Run Code Online (Sandbox Code Playgroud)
我对到目前为止所拥有的东西并不感到自豪,特别是因为它返回一个列表,而不是像 ayield这样的东西,它会构建我正在寻找的列表:
def split_first_ace(hand):
aces = [True if isinstance(x, list) else False for x in hand]
for i, x in enumerate(aces):
if x:
ranks_temp = hand.copy()
ace = ranks_temp.pop(i)
return [[ace[0]] …Run Code Online (Sandbox Code Playgroud) 第一次海报在这里。我通常能够在不发布的情况下获得我所有的答案,但这真的让我很难过。我是一个没有任何 JavaScript 经验的中级 R 用户。这是我想要做的:
我有一个数据表,它通过操作按钮使用交互式闪亮过滤器,这些按钮对我的数据进行子集化,以及内置的数据表过滤器。操作按钮通过对数据框进行子集化来执行批量过滤。我遇到的问题是,无论何时应用这些批量过滤器之一,都会重新呈现数据表并清除所有单独的列过滤器。我希望能够在数据子集化和表重新呈现时保持单个列过滤器处于活动状态。
我设法发现我可以使用 input$mytable_search_columns 从数据表中输出和隔离此信息,但我不知道如何编写在重新渲染表时应用此条件的 javascript。
library(shinyBS)
library(DT)
server <- function(input, output, session) {
df <- reactive({iris})
df.sub <- reactive({
if(input$buttonfilter == 0){
df.sub <- df()
}
if(input$buttonfilter == 1){
df.sub <- subset(df(), subset = Species == 'setosa')
}
df.sub
})
output$mytable <- DT::renderDataTable(df.sub(),
filter = 'top')
output$filters <- renderText({input$mytable_search_columns})
}
ui <- fluidPage(
h3('Button Toggle Filter'),
bsButton("buttonfilter","Show only Setosa", type = 'toggle'),
br(),
br(),
h3('Current filters'),
textOutput('filters'),
br(),
br(),
DT::dataTableOutput('mytable')
)
shinyApp(ui = ui, server …Run Code Online (Sandbox Code Playgroud)