需要一个JavaScript代码,生成1--100之间的随机数一共一百个,每行显示10个数字,而且这

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要一个JavaScript代码,生成1--100之间的随机数一共一百个,每行显示10个数字,而且这相关的知识,希望对你有一定的参考价值。

需要一个javascript代码,生成1--100之间的随机数一共一百个,每行显示10个数字,而且这个100个数字不能重复出现, 代码如何写

就是生成无重复随机数了。我跟你说下原理,代码的话你自己就明白了。
每次生成一个随机数,再判断生成的随机数,是否存在于已经生成的随机数群组中,如果存在,则重复执行生成随机数这个动作。
这样就可以保证生成的随机数没有重复。而且位置也没有一定的规律。

我查了下手册,还有一个更简单的方法就是使用函数:shuffle( array &array )
该函数的作用是随机打乱一个数组。
这样就简单了,你先生成一个数组(1-100),然后使用此函数将数组随机打乱,这样就生成了无重复的随机数组。
以下代码亲测可行。
<?php
$numbers = range(1,100);//生成1-100之间的数组。
srand((float)microtime()*1000000);//建立随机种子
shuffle($numbers);//打乱数组
$i=0;//换行标记
foreach ($numbers as $number) //遍历数组
$i++;//标记自增
echo "$number ";//输出数值
if($i %10==0) echo "<br>";//如果输出10个则换行。

?>
MD写完了,发现你问的是JS的,我回答的是PHP的,不过方法1是通用的。JS中不知道有没有这样的函数。
参考技术A var a=[];
for(var i=1;i<=100;i++)
a.push(i);

a.sort(function()
return Math.random()<.5?1:-1;
);
document.open();
document.write('<table><tr>');
for(var i=0;i<a.length;i++)
if(i&&(i%10==0))
console.log(i);
document.write('</tr><tr>');

console.log(i);
document.write('<td>'+a[i]+'</td>');

document.write('</tr></table>');
document.close();本回答被提问者采纳

用python抓取javascript生成的html

【中文标题】用python抓取javascript生成的html【英文标题】:scrape html generated by javascript with python 【发布时间】:2011-01-10 01:08:42 【问题描述】:

我需要用 python 抓取一个网站。我使用 urllib 模块获取了源 html 代码,但我还需要抓取一些由 javascript 函数(包含在 html 源代码中)生成的 html 代码。这个函数在站点“中”的作用是,当您按下按钮时,它会输出一些 html 代码。如何用 python 代码“按下”这个按钮?刮痧能帮到我吗?我用 firebug 捕获了 POST 请求,但是当我尝试在 url 上传递它时,我收到 403 错误。有什么建议吗?

【问题讨论】:

我在Click on a javascript link within python?回答了一个类似的问题 这能回答你的问题吗? Web-scraping JavaScript page with Python 【参考方案1】:

由于这里没有全面的答案,我先写一个。

要刮掉 JS 渲染的页面,我们需要一个具有 JavaScript 引擎的浏览器(即支持 JavaScript 渲染)

Mechanizeurl2lib 等选项将不起作用,因为它们支持 JavaScript。

所以这就是你要做的:

将PhantomJS 设置为与Selenium 一起运行。在为它们安装了依赖项之后(参考this),您可以使用以下代码作为示例来获取完全呈现的网站。

from selenium import webdriver

driver = webdriver.PhantomJS()
driver.get('http://jokes.cc.com/')
soupFromJokesCC = BeautifulSoup(driver.page_source) #page_source fetches page after rendering is complete
driver.save_screenshot('screen.png') # save a screenshot to disk

driver.quit()

【讨论】:

【参考方案2】:

对于Scrapy(伟大的python抓取框架)有scrapyjs:一个额外的下载器处理程序/中间件处理程序能够抓取javascript生成的内容。

它基于pygtk、python-webkit和python-jswebkit的webkit引擎,非常简单。

【讨论】:

【参考方案3】:

我使用 webkit,它是 Chrome 和 Safari 背后的浏览器渲染器。有Python bindings to webkit through Qt。这是完整的example to execute JavaScript and extract the final HTML。

【讨论】:

【参考方案4】:

在 Python 中,我认为 Selenium 1.0 是要走的路。它是一个库,可让您从您选择的语言控制真正的网络浏览器。

您需要在运行脚本的机器上安装有问题的网络浏览器,但这似乎是以编程方式询问使用大量 JavaScript 的网站的最可靠方法。

【讨论】:

有没有办法通过请求和美丽的汤本身来做到这一点?我一直在使用请求,除此之外,它在其他所有情况下都可以正常工作。请让我知道 requests 是否也可以解决这个问题。 @Shaardool:解决什么问题?抓取由 JavaScript 在浏览器中生成的 HTML?不——因为你需要运行 JavaScript 的东西才能生成 HTML。 Beautiful Soup 不运行 JavaScript。 感谢您的见解,请求库可以做到吗?它适用于对服务器的 AJAX 请求,但我想知道它是否也适用于创建 HTML 的 javascript。不过,我在他们的文档中没有找到任何这样的东西。 @Shaardool 我不熟悉 Requests 库。通过专门针对该库提出一个新问题,您可能会更快地得到答案。【参考方案5】:

我以前必须这样做(在 .NET 中),您基本上必须托管一个浏览器,让它点击按钮,然后询问浏览器的 DOM(文档对象模型)以获取生成的 HTML。

这绝对是 Web 应用程序转向 Ajax/Javascript 方法来生成 HTML 客户端的缺点之一。

【讨论】:

以上是关于需要一个JavaScript代码,生成1--100之间的随机数一共一百个,每行显示10个数字,而且这的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript幼儿园级1-100随机数运算

javascript 随机生成十个(1-100以内)不相等的整数,存放在一维数组numArr中, 对该数组排序,并输出显示。

用python抓取javascript生成的html

javaScript----------(函数)

C# 如何生成不重复的1-100随机数。

JAVA怎样随机生成10W个数字, 要求: 10W个数字总等于50W而且每个数字最小1最大100, 求代码及思路