问题列表 - 第46540页

仅使用加法,除法和乘法以固定的步数达到数的算法

在游戏中工作并且在游戏中的某一点上玩家被投入奖励游戏.他们需要获得的金额是预先确定的,但是我们想要提出一种算法,该算法使用加法,乘法和除法来获得x个步骤中的数量.步骤的数量也会提前知道,因此算法只需要弄清楚如何使用这些步骤来达到数字.

您可以使用的唯一计算是+1到+ 15,x2,x4,/ 2,/ 4.您可以在步骤中超过目标编号,但必须以最后一步的目标编号结束.步数通常在15到30之间,您始终从0开始.

例如:数量:100,步数:10 == + 10,+ 2,x2,+ 4,x4,+ 10,/ 2,+ 15,+ 15,+ 9

金额:40,步数:12 == + 15,+ 1,+ 5,+ 2,+ 1,/ 2,*4,+ 6,+ 6,/ 4,+ 5,*2

我很好奇是否有这样的东西可能已经存在?我确信我们可以拿出一些东西,但如果有一个可以处理这项工作的通用算法,我不想重新发明轮子.


更新:对@FryGuy的代码进行了一些小的更改,使其成为一个随机达到目标数量所需的路线.他的解决方案原样很有效,但在看到它工作并考虑到@Argote和@Moron的评论之后,我意识到需要在其中进行一定程度的随机化以使其吸引我们的玩家.在10个步骤中添加了+1以达到目标数量10个作品,但就我们如何使用它而言是"无聊".非常感谢所有评论和回答的人.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CR
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                int targetNumber = 20;
                int steps = 13;
                int[] route = null;
                Boolean routeAcceptable = false;

                // Continue choosing routes until we find one that is acceptable …
Run Code Online (Sandbox Code Playgroud)

algorithm pseudocode

13
推荐指数
1
解决办法
1596
查看次数

命令模式 - 参数

我希望在分布式客户端/服务器环境中使用命令模式.本质上,接收器的"执行"方法需要采用各种参数,但是我读到每个命令类都应该有一个统一的"执行"方法,该方法不应该揭示接收器的底层功能.

我的问题是,如何通过命令类将调用参数从交换机传递到不同的接收器?有没有人有一个简单的Java示例?我似乎找不到任何东西

谢谢你的帮助.

java command-pattern

3
推荐指数
1
解决办法
4591
查看次数

此代码未定义,为什么运行?我怎么崩溃了?

我在Visual studio中运行了下面的代码,并期望得到运行时或某种错误.我一无所获,绝对没有.我得到了输出代码9,注释出来并获得了3.我在键盘上运行它并且它也没有给我任何错误.

是否有编译器会告诉我这段代码不正确?如果它是正确的,为什么呢?我知道const A&是合法的,但下面的AFAIK不是.

class A
{
public:
    int v;
    A& get()
    {
        return *this;
    }
};

A& func()
{
    A a;
    a.v=3;
    return a.get();
}

int main()
{
    A& v = func();
    v.v=9;
    return v.v;
}
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
2
解决办法
223
查看次数

使用AdapterView和addView时出现问题

我希望下面的类显示一些textview/buttons/spinners,以及包含已解析数据的ListView.但是listview/adapter/addview会造成一些麻烦.这是我得到的错误:

java.lang.UnsupportedOperationException:AdapterView不支持addView(View,LayoutParams)

我感觉它与我的xml文件有关,但我不太确定.这是我的代码:

public class StatisticsScreen extends ListActivity{

private List<Message> messages; 

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.statisticsscreen);

    loadFeed();

    //other textviews and listeners added
}

private void loadFeed() {

    try{
        BaseFeedParser parser = new BaseFeedParser();
        messages = parser.parse();
        List<String> titles = new ArrayList<String>(messages.size());
        for (Message msg : messages){
            titles.add(msg.getTitle());
        }
        ArrayAdapter<String> adapter = 
        new ArrayAdapter<String>(this, R.layout.xmldatarow,titles);

        this.setListAdapter(adapter);           
    } catch (Throwable t){
        Log.e("AndroidNews",t.getMessage(),t);
    }       
}
Run Code Online (Sandbox Code Playgroud)

我的statisticsscreen xml:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">

<LinearLayout android:id="@+id/statsviewlayout"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="@color/black">
    //other layouts/textviews/buttons added …
Run Code Online (Sandbox Code Playgroud)

parsing android listview adapter android-adapterview

7
推荐指数
1
解决办法
1万
查看次数

删除外部数组:

如果数组中有数组,如何删除外部数组:

$outer_array = array(0 => array(
                                'key1' => 'value1',
                                'key2' => 'value2'
     ));
Run Code Online (Sandbox Code Playgroud)

print_r($ outer_array)产生:

Array
(
    [0] => Array
        (
            [key1] => value1
            [key2] => value2
        )

)
Run Code Online (Sandbox Code Playgroud)

是否有一个内置于PHP的功能,所以你留下:

        Array
        (
            [key1] => value1
            [key2] => value2
        )
Run Code Online (Sandbox Code Playgroud)

php arrays

4
推荐指数
2
解决办法
8040
查看次数

使用PHP会话进行年龄验证

我实施了年龄验证系统,用户只有在选中主页上的“我是21岁”复选框后,才能查看网站页面。

他们这样做的方式是在选中复选框时设置一个PHP会话变量。然后,对于所有php网页,我的代码都会进行检查,以确保设置了“我是21岁”会话变量。

因此,这适用于我要阻止的任何PHP网页。但是缺点是我必须在每个php文件的顶部添加age块php代码段,并且它不适用于任何非php文件。

所以我的问题是,无论如何我是否可以使用“ I am 21”会话变量来简单地阻止/允许访问整个目录?这样我就不必在每个PHP文件中都添加年龄限制,从而可以阻止非PHP文件(例如PDF)。例如,是否可以在.htaccess中访问PHP会话变量?

php session

1
推荐指数
1
解决办法
991
查看次数

javascript正则表达式

我想使用jQuery重命名元素的id属性.我需要匹配以下内容:

  • row_1
  • row_2
  • row_xx等

这是我到目前为止:

$('.form .newsCategories .row .itemWrap .itemTop .inputBtn').each(function(index){
    $(this).attr("id", $(this).attr("id").replace($(this).attr("id").match(/\[row_[0-9]+\]/), "roww_"+index));
    });
Run Code Online (Sandbox Code Playgroud)

但这失败了.我觉得我的前任是错的.请帮助谢谢

javascript regex jquery

0
推荐指数
1
解决办法
109
查看次数

LaTeX:在数学模式下堆叠三行

嘿,
我正在写一个有三个索引i,j,k的公式.
在这一行的最后,我想说:

i = 1,...,a
j = 1,...,b
k = 1,...,n

但我喜欢它用较小的字体并堆叠在彼此之上.有人可以告诉我一个可以完成此任务的命令吗?我认为\ mbox不能做数学模式.

math stack latex

6
推荐指数
1
解决办法
8863
查看次数

单击数据URI锚点链接时,强制Chrome/Safari中的"另存为"框

<a href="data:text/csv;base64,CiJpZCIsInJlcXVlc3RfaWQiLCJkYXRlIiwiY29tcGFueV9uYW1lIiwiYWRkcmVzcyIsInBob25lIiwid2Vic2l0ZV91cmwiLCJwbGFjZV9wYWdlX3VybCIsImFkdmVydGlzZXIiLCJyZXZpZXdzIiwicmV2aWV3c190ZXh0Iiwib3duZXJfdmVyaWZpZWQiLCJjYXRlZ29yaWVzIiwibGF0IiwibG5nIiwicGxhY2VodG1sIiwiZ29vZ2xlX3RhZyIsIm1hcHNfdXJsIiwic2l0ZV9kZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uX2F0dHJpYnV0aW9uIiwib3duZXJfZW1haWwiLCJrZXl3b3JkIiwibGlua3MiCiIxNDc4IiwiNTMyIiwiIiwiU3RhcmJ1Y2tzIiwiMTI5OCBIb3dhcmQgU3RyZWV0LCBTYW4gRnJhbmNpc2NvLCBDQSA5NDEwMyIsIig0MTUpIDU2NS03Mzg1IiwiaHR0cDovL3d3dy5zdGFyYnVja3MuY29tLyIsImh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcy9wbGFjZT9obD1lbiZhc19xPXNhbitmcmFuY2lzY28rc3RhcmJ1Y2tzJmFzX2VwcT0mYXNfb3E9JmFzX2VxPSZudW09MTAmbHI9JmFzX2ZpbGV0eXBlPSZhc19zaXRlc2VhcmNoPSZhc19xZHI9YWxsJmFzX3JpZ2h0cz0mYXNfb2NjdD1hbnkmY3I9JmFzX25sbz0mYXNfbmhpPSZzYWZlPWltYWdlcyZ1bT0xJmllPVVURi04JnE9c2FuK2ZyYW5jaXNjbytzdGFyYnVja3MmZmI9MSZocT1zdGFyYnVja3MmaG5lYXI9U2FuK0ZyYW5jaXNjbywrQ0EmY2lkPTQ4NTI1NDg2NzIzODU5NzI1OTMmZWk9bUVWRFRhU05PWWEwbFFmV2haZ3Amc2E9WCZvaT1sb2NhbF9yZXN1bHQmY3Q9cGxhY2VwYWdlLWxpbmsmcmVzbnVtPTImdmVkPTBDQ0lRNGdrd0FRIiwiMCIsIjYiLCIiLCIxIiwiUmVzdGF1cmFudCIsIiIsIiIsIiIsIjAiLCIiLCIiLCIiLCIiLCJzYW4gZnJhbmNpc2NvIHN0YXJidWNrcyIsIkFycmF5IgoiMTQ3OSIsIjUzMiIsIiIsIlN0YXJidWNrcyIsIjEyMzEgTWFya2V0IFN0cmVldCwgU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDMiLCIoNDE1KSA1MjItMTQzOCIsImh0dHA6Ly93d3cuc3RhcmJ1Y2tzLmNvbS8iLCJodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHMvcGxhY2U/aGw9ZW4mYXNfcT1zYW4rZnJhbmNpc2NvK3N0YXJidWNrcyZhc19lcHE9JmFzX29xPSZhc19lcT0mbnVtPTEwJmxyPSZhc19maWxldHlwZT0mYXNfc2l0ZXNlYXJjaD0mYXNfcWRyPWFsbCZhc19yaWdodHM9JmFzX29jY3Q9YW55JmNyPSZhc19ubG89JmFzX25oaT0mc2FmZT1pbWFnZXMmdW09MSZpZT1VVEYtOCZxPXNhbitmcmFuY2lzY28rc3RhcmJ1Y2tzJmZiPTEmaHE9c3RhcmJ1Y2tzJmhuZWFyPVNhbitGcmFuY2lzY28sK0NBJmNpZD01Mjg4Nzg4OTkwOTk4MjYyOTEzJmVpPW1FVkRUYVNOT1lhMGxRZldoWmdwJnNhPVgmb2k9bG9jYWxfcmVzdWx0JmN0PXBsYWNlcGFnZS1saW5rJnJlc251bT0zJnZlZD0wQ0NrUTRna3dBZyIsIjAiLCIzNiIsIiAiIlN0YXJidWNrcyBoYXMgdGhlIGJlc3QgY29mZmVlIiIgIC0gIGNpdHlzZWFyY2guY29tICAgLi4uICAiIklzbid0IGl0IGVub3VnaCB0aGF0IHRoZXkgYWxtb3N0IG93biBhIG1vbm9wb2x5IGF0IGFsbCBhaXJwb3J0cz8iIiAgLSAgY2l0eXNlYXJjaC5jb20gICAuLi4gICIiSXQgaXMgYSBwaXR5IHRoYXQgYSBjaGFpbiB0aGUgc2l6ZSBvZiBTdGFyYnVjaydzIGlzIGV2ZW4gb24gdGhpcyAiIkJlc3Qgb2YiIiBsaXN0IiIgIC0gIGNpdHlzZWFyY2guY29tICAgLi4uICAiIkV2ZW4gd29yc2UgbW9vZCIiICAtICBjaXR5c2VhcmNoLmNvbSAgIC4uLiAgIiJTZXJ2aWNlIGlzIHVzdWFsbHkgZ3JlYXQiIiAgLSAgY2l0eXNlYXJjaC5jb20gICAuLi4gICIiR3JlYXQgam9iIGd1eXMhIiIgIC0gIGNpdHlzZWFyY2guY29tICAgLi4uICAiIlRoaW5rIGFib3V0IGl0ISIiICAtICBjaXR5c2VhcmNoLmNvbSAgICAiLCIxIiwiQ2FmZSwgQ29mZmVlICZhbXA7IFRlYSwgQ29mZmVlIFNob3BzLCBSZXN0YXVyYW50cywgQ29mZmVlIEhvdXNlcyAmYW1wOyBDYWZlcywgUmVzdGF1cmFudCIsIiIsIiIsIiIsIjAiLCIiLCIiLCIiLCIiLCJzYW4gZnJhbmNpc2NvIHN0YXJidWNrcyIsIkFycmF5IgoiMTQ4MCIsIjUzMiIsIiIsIlN0YXJidWNrcyIsIjE4OTkgVW5pb24gU3RyZWV0LCBTYW4gRnJhbmNpc2NvLCBDQSA5NDEyMyIsIig0MTUpIDkyMS00MDQ5IiwiaHR0cDovL3d3dy5zdGFyYnVja3MuY29tLyIsImh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcy9wbGFjZT9obD1lbiZhc19xPXNhbitmcmFuY2lzY28rc3RhcmJ1Y2tzJmFzX2VwcT0mYXNfb3E9JmFzX2VxPSZudW09MTAmbHI9JmFzX2ZpbGV0eXBlPSZhc19zaXRlc2VhcmNoPSZhc19xZHI9YWxsJmFzX3JpZ2h0cz0mYXNfb2NjdD1hbnkmY3I9JmFzX25sbz0mYXNfbmhpPSZzYWZlPWltYWdlcyZ1bT0xJmllPVVURi04JnE9c2FuK2ZyYW5jaXNjbytzdGFyYnVja3MmZmI9MSZocT1zdGFyYnVja3MmaG5lYXI9U2FuK0ZyYW5jaXNjbywrQ0EmY2lkPTk1NjE5NTAwNjUwMTYwMTgwMCZlaT1tRVZEVGFTTk9ZYTBsUWZXaFpncCZzYT1YJm9pPWxvY2FsX3Jlc3VsdCZjdD1wbGFjZXBhZ2UtbGluayZyZXNudW09NCZ2ZWQ9MENEQVE0Z2t3QXciLCIwIiwiMzUiLCIiLCIxIiwiQ2FmZSwgQ29mZmVlICZhbXA7IFRlYSwgQ29mZmVlIFNob3BzLCBDb2ZmZWUgSG91c2VzICZhbXA7IENhZmVzIiwiIiwiIiwiIiwiMCIsIiIsIiIsIiIsIiIsInNhbiBmcmFuY2lzY28gc3RhcmJ1Y2tzIiwiQXJyYXkiCg==">Export This</a>
Run Code Online (Sandbox Code Playgroud)

以上是包含基本64位编码的csv数据导出的数据URI.在我的应用程序的报告页面上,我将导出嵌入到每个页面视图中,以便导出不需要再次访问数据库.

在Firefox 3中,单击此链接将打开另存为"下载"对话框.在Chrome 9中单击它不会做任何事情.我可以在Chrome中右键单击保存,它会将解码后的csv写入文件.在Safari中单击它会在浏览器窗口中打开解码的CSV数据,然后我可以手动保存.

在IE中...谁在乎,我是对的吗?

您可以通过将其中的<a>标记全部复制到名为test.html的空白文件中并在每个浏览器中打开它来重现此测试.它的行为与我的应用程序环境中的行为完全相同.

问题:当用户单击数据URI链接时,是否有办法强制弹出"另存为"对话框,如在Firefox中一样?或者其他一些方法来解决这种不一致问题?

理论上,Firefox,Chrome和Safari都支持数据URI.在实践中.......

anchor dialog cross-browser save-as data-uri

7
推荐指数
1
解决办法
4091
查看次数

Thrift格式规范在哪里?

虽然Thrift格式相对广泛使用(并且项目仍然存在),但我无法找到底层数据格式的规范.或格式,因为显然至少有两种格式; 标准的,紧凑的格式.

鉴于它的广泛使用,我希望它只是我可怜的google-fu,并且存在规范或规范(源代码之外).如果是这样,请分享!

编辑:Java源代码对于确定格式并不算太糟糕; 参见TBinaryProtocol.java和TCompactBinaryProtocol.java; 其中包含基元,由生成的类调用(扩展TBase)

编辑2:虽然它不包含格式规范,但" 缺失的指南 "是很好的阅读.

specifications thrift dataformat

18
推荐指数
2
解决办法
9468
查看次数